def test_main_add_criteria(qtbot): MainWindow = QMainWindow() ui = main.Ui_MainWindow() qtbot.addWidget(MainWindow) ui.setupUi(MainWindow) MainWindow.show() qtbot.mouseClick(ui.combo_box, Qt.LeftButton) qtbot.keyClick(ui.combo_box, Qt.Key_Down) qtbot.keyClick(ui.combo_box, Qt.Key_Enter) assert ui.combo_box.currentText() == 'New criteria' qtbot.keyClicks(ui.lineEdit, 'taste') assert ui.lineEdit.text() == 'taste' qtbot.mouseClick(ui.pushButton, Qt.LeftButton) assert ui.lineEdit.text() == '' assert ui.matrix_widget.columnCount() == 2 assert ui.matrix_widget.horizontalHeaderItem(0).text() == 'taste' assert 'taste' in ui.matrix.df.columns qtbot.keyClicks(ui.lineEdit, 'color') qtbot.keyClick(ui.lineEdit, Qt.Key_Enter) assert ui.matrix_widget.columnCount() == 3 assert ui.matrix_widget.horizontalHeaderItem(1).text() == 'color' assert 'color' in ui.matrix.df.columns
def test_main_weights(qtbot): MainWindow = QMainWindow() ui = main.Ui_MainWindow() qtbot.addWidget(MainWindow) ui.setupUi(MainWindow) MainWindow.show() # Setup qtbot.keyClicks(ui.lineEdit, 'apple') qtbot.mouseClick(ui.pushButton, Qt.LeftButton) qtbot.keyClicks(ui.lineEdit, 'orange') qtbot.keyClick(ui.lineEdit, Qt.Key_Enter) qtbot.mouseClick(ui.combo_box, Qt.LeftButton) qtbot.keyClick(ui.combo_box, Qt.Key_Down) qtbot.keyClick(ui.combo_box, Qt.Key_Enter) qtbot.keyClicks(ui.lineEdit, 'taste') qtbot.mouseClick(ui.pushButton, Qt.LeftButton) qtbot.keyClicks(ui.lineEdit, 'color') qtbot.keyClick(ui.lineEdit, Qt.Key_Enter) # Neither clicks or tab key works ui.matrix_widget.setItem(0, 0, QTableWidgetItem('4')) assert ui.matrix.df.loc['Weight', 'taste'] == 4 assert ui.matrix_widget.item(0, 2).text() == '40.0' assert ui.matrix_widget.item(1, 2).text() == '0.0%' assert ui.matrix_widget.item(2, 2).text() == '0.0%'
def powrot(self): self.window = QtWidgets.QMainWindow() self.ui = main.Ui_MainWindow() self.ui.setupUi(self.window) QApplication.closeAllWindows() self.qt2_app = oknoAdmin.App() self.qt2_app.show()
def test_tabs(qtbot): MainWindow = QMainWindow() ui = main.Ui_MainWindow() qtbot.addWidget(MainWindow) ui.setupUi(MainWindow) MainWindow.show() assert ui.master_tab_widget.currentIndex() == 0 # mouse click doesn't work ui.master_tab_widget.setCurrentIndex(1) assert ui.master_tab_widget.currentIndex() == 1
def test_main_ratings(qtbot): MainWindow = QMainWindow() ui = main.Ui_MainWindow() qtbot.addWidget(MainWindow) ui.setupUi(MainWindow) MainWindow.show() # Setup qtbot.keyClicks(ui.lineEdit, 'apple') qtbot.mouseClick(ui.pushButton, Qt.LeftButton) qtbot.keyClicks(ui.lineEdit, 'orange') qtbot.keyClick(ui.lineEdit, Qt.Key_Enter) qtbot.mouseClick(ui.combo_box, Qt.LeftButton) qtbot.keyClick(ui.combo_box, Qt.Key_Down) qtbot.keyClick(ui.combo_box, Qt.Key_Enter) qtbot.keyClicks(ui.lineEdit, 'taste') qtbot.mouseClick(ui.pushButton, Qt.LeftButton) qtbot.keyClicks(ui.lineEdit, 'color') qtbot.keyClick(ui.lineEdit, Qt.Key_Enter) ui.matrix_widget.setItem(0, 0, QTableWidgetItem('4')) # Tests ui.matrix_widget.setItem(0, 1, QTableWidgetItem('7')) assert ui.matrix.df.loc['Weight', 'color'] == 7 assert ui.matrix_widget.item(0, 2).text() == '110.0' assert ui.matrix_widget.item(1, 2).text() == '0.0%' assert ui.matrix_widget.item(2, 2).text() == '0.0%' ui.matrix_widget.setItem(1, 0, QTableWidgetItem('6')) assert ui.matrix.df.loc['apple', 'taste'] == 6 assert ui.matrix_widget.item(1, 2).text() == '21.82%' ui.matrix_widget.setItem(1, 1, QTableWidgetItem('5')) assert ui.matrix.df.loc['apple', 'color'] == 5 assert ui.matrix_widget.item(1, 2).text() == '53.64%' ui.matrix_widget.setItem(2, 0, QTableWidgetItem('9')) assert ui.matrix.df.loc['orange', 'taste'] == 9 assert ui.matrix_widget.item(2, 2).text() == '32.73%' ui.matrix_widget.setItem(2, 1, QTableWidgetItem('3')) assert ui.matrix.df.loc['orange', 'color'] == 3 assert ui.matrix_widget.item(2, 2).text() == '51.82%'
def test_add_continuous_criteria(qtbot): MainWindow = QMainWindow() ui = main.Ui_MainWindow() ui.setupUi(MainWindow) ui.data_grid = Mock() # Notice that QMainWindow is registered as the widget qtbot.addWidget(MainWindow) MainWindow.show() ui.master_tab_widget.setCurrentIndex(1) qtbot.keyClicks(ui.line_edit_cc_tab, 'price') assert ui.line_edit_cc_tab.text() == 'price' qtbot.keyClick(ui.line_edit_cc_tab, Qt.Key_Enter) assert ui.line_edit_cc_tab.text() == '' assert 'price' in ui.matrix.continuous_criteria qtbot.keyClicks(ui.line_edit_cc_tab, 'size') qtbot.mouseClick(ui.criterion_button, Qt.LeftButton) # Button works as well assert 'size' in ui.matrix.continuous_criteria
def test_main_add_choices(qtbot): MainWindow = QMainWindow() ui = main.Ui_MainWindow() qtbot.addWidget(MainWindow) ui.setupUi(MainWindow) MainWindow.show() qtbot.keyClicks(ui.lineEdit, 'apple') assert ui.lineEdit.text() == 'apple' qtbot.mouseClick(ui.pushButton, Qt.LeftButton) assert ui.lineEdit.text() == '' assert ui.matrix_widget.rowCount() == 2 assert ui.matrix_widget.verticalHeaderItem(1).text() == 'apple' assert 'apple' in ui.matrix.df.index qtbot.keyClicks(ui.lineEdit, 'orange') qtbot.keyClick(ui.lineEdit, Qt.Key_Enter) assert ui.matrix_widget.rowCount() == 3 assert ui.matrix_widget.verticalHeaderItem(2).text() == 'orange' assert 'orange' in ui.matrix.df.index
def __init__(self, parent=None, flag=QtCore.Qt.Widget): QtWidgets.QMainWindow.__init__(self, parent, flag) self.ui = main.Ui_MainWindow() self.ui.setupUi(self) self.score = (0,0) self.started = False self.sounds = {} global query self.query = query # default settings self.digits = 1 self.rows = 5 self.flash = 500 self.timeout = 1500 self.neg = False self.speech = False self.one_digit = False self.fullscreen = False self.hands_free = False self.tmpwav= None self.replay = False self.noscore = False self.history = [] self.font_color = None self.background_color = None self.annoying_sound = False self.no_plus_sign = False self.isLabelClearable = True self.geometryLabel = None self.timerUpdateLabel = QtCore.QTimer() self.timerUpdateLabel.setSingleShot(True) self.timerUpdateLabel.timeout.connect(self.updateLabel) self.timerShowAnswer = QtCore.QTimer() self.timerShowAnswer.setSingleShot(True) self.timerShowAnswer.timeout.connect(self.showAnswer) self.timerRestartPlay = QtCore.QTimer() self.timerRestartPlay.setSingleShot(True) self.timerRestartPlay.timeout.connect(self.restartPlay) if IS_SYSTEMRANDOM_AVAILABLE: self.randint = SystemRandom().randint else: self.randint = randint self.ui.label.clear() # using an inputmask gives a bug when double clicking in any other apps if le_answer has the focus #self.ui.le_answer.setInputMask('000000009') self.ui.l_total.hide() self.shortcut_F11 = QtWidgets.QShortcut(QtGui.QKeySequence('F11'), self) self.shortcut_F11.activated.connect(self.updateFullScreen) self.shortcut_Enter = QtWidgets.QShortcut(QtGui.QKeySequence('Enter'), self) self.shortcut_Enter.activated.connect(self.ui.pb_start.click) self.ui.pb_check.clicked.connect(self.updateAnswer) self.ui.pb_settings.clicked.connect(self.changeSettings) self.ui.pb_exit.clicked.connect(self.close) self.ui.pb_start.clicked.connect(self.startPlay) self.ui.pb_replay.clicked.connect(self.redisplaySequence) self.ui.label.setPixmap(QtGui.QPixmap(WELCOME)) if IS_SOUND_AVAILABLE: self.player = QtMultimedia.QMediaPlayer() self.player.setAudioRole(QtMultimedia.QAudio.VoiceCommunicationRole) # add url in statusbar self.ui.statusbar.showMessage('sorobanexam.org') self.importSettings() # change background and foreground color if needed stylesheet = [] if self.background_color is not None: stylesheet.append('background-color: %s' % self.background_color) if self.font_color is not None: stylesheet.append('color: %s' % self.font_color) if stylesheet != []: self.ui.label.setStyleSheet(';'.join(stylesheet)) if self.fullscreen: self.showFullScreen() else: self.showNormal() # resize font font = self.ui.label.font() # width is the size of of '+9999' in the current font width = QtGui.QFontMetrics(font).width('+'+'9'*(self.digits+2)) # the factor to multiply by to use the max. space factor = float(self.ui.gb_number.width())/width newPointSize = min(int(font.pointSize()*factor), self.ui.gb_number.height()) font.setPointSize(newPointSize) self.ui.label.setFont(font)
import sys from PySide2.QtWidgets import QApplication, QMainWindow from gui import main app = QApplication(sys.argv) MainWindow = QMainWindow() ui = main.Ui_MainWindow() ui.setupUi(MainWindow) MainWindow.show() sys.exit(app.exec_())