class MainWindow(QMainWindow, Ui_MainWindow): def __init__(self, parent=None): QMainWindow.__init__(self, parent) Ui_MainWindow.setupUi(self, self) self.manager = UserManager() self.users = {} self.lineEdit_appid.setText('wxaafc0692eca7f8d6') self.lineEdit_secret.setText('077b4e1bed2b773c1014efa4512cd652') self.progressBar.setValue(0) self.pushButton_get_openids.setEnabled(False) self.pushButton_dump_all_user.setEnabled(False) self.pushButton_connect.clicked.connect(self.onConnect) self.pushButton_get_openids.clicked.connect(self.onGetOpenids) self.listWidget.currentItemChanged.connect(self.onOpenidFocus) self.manager.connected.connect(self.onConnected) self.manager.openidGot.connect(self.onOpenidGot) self.manager.info.connect(self.onInfo) self.manager.error.connect(self.onError) self.manager.onUser.connect(self.onUserInfo) self.manager.progress.connect(self.onProgressUpdate) self.pushButton_dump_all_user.clicked.connect(self.manager.dump_all_users) self.pushButton_statistics.clicked.connect(self.manager.do_statistic) self.pushButton_gender.clicked.connect(self.manager.show_stat_sex) self.pushButton_language.clicked.connect(self.manager.show_stat_language) self.pushButton_city.clicked.connect(self.manager.show_stat_city) self.pushButton_province.clicked.connect(self.manager.show_stat_province) self.pushButton_country.clicked.connect(self.manager.show_stat_country) def onInfo(self, msg): self.statusBar().showMessage(msg) def onError(self, errmsg): self.statusBar().showMessage(errmsg) def onConnect(self): self.statusBar().showMessage('Connecting WeChat Server'); appid = self.lineEdit_appid.text() secret = self.lineEdit_secret.text() self.manager.connect(appid, secret) def onConnected(self, msg): self.pushButton_get_openids.setEnabled(True) self.statusBar().showMessage(msg) def onGetOpenids(self): self.statusBar().showMessage('Getting openids'); self.manager.get_openids() def onOpenidGot(self, msg): self.statusBar().showMessage(msg) self.listWidget.addItems(self.manager.openids) self.progressBar.setValue(0) self.lcdNumber_totalUsers.display(len(self.manager.openids)) self.pushButton_dump_all_user.setEnabled(True) def onOpenidFocus(self, target): openid = target.text().__str__() self.manager.get_user(openid) def onUserInfo(self, user): self.tableWidget.setItem( 0, 0, QTableWidgetItem(str(user.subscribe)) ) self.tableWidget.setItem( 1, 0, QTableWidgetItem(user.openid) ) self.tableWidget.setItem( 2, 0, QTableWidgetItem(user.nickname) ) self.tableWidget.setItem( 3, 0, QTableWidgetItem(str(user.sex)) ) self.tableWidget.setItem( 4, 0, QTableWidgetItem(user.language) ) self.tableWidget.setItem( 5, 0, QTableWidgetItem(user.city) ) self.tableWidget.setItem( 6, 0, QTableWidgetItem(user.province) ) self.tableWidget.setItem( 7, 0, QTableWidgetItem(user.country) ) self.tableWidget.setItem( 8, 0, QTableWidgetItem(user.headimgurl) ) self.tableWidget.setItem( 9, 0, QTableWidgetItem(str(user.subscribe_time))) self.tableWidget.setItem(10, 0, QTableWidgetItem(user.remark) ) self.tableWidget.setItem(11, 0, QTableWidgetItem(str(user.groupid)) ) self.statusBar().showMessage(user.openid) def onProgressUpdate(self, loaded, total): self.lcdNumber_totalUsers.display(total) self.lcdNumber_loadedUsers.display(loaded) percentage = 100 * loaded / total self.progressBar.setValue(percentage)