Python, как я могу отобразить флажок, как отмечено в

1

У меня есть GUI со многими флажками (на python). пользователи должны нажать много флажков для запуска приложения. Я хочу создать кнопку, которая автоматически выбирает и "нажимает" некоторые предопределенные флажки.

Я знаю, как создать кнопку, а также приложение "знает", что флажок установлен.

однако при просмотре графического интерфейса флажки остаются пустыми, поэтому пользователь не знает, какой флажок установлен. см. ниже определение флажка:

class Ui_Dialog(object):
    def setupUi(self, Dialog):
        QtCore.QObject.connect(self.legacyrunsens, 
        QtCore.SIGNAL(_fromUtf8("stateChanged(int)")), legacychecksens)

поэтому я называю legacychecksens(2), но в GUI флажок не отмечен.

  • 1
    PyQt4, PyQt5, PySide или PySide2?
  • 0
    Я использую PyQt4
Теги:
pyqt4
pyqt

1 ответ

1
Лучший ответ

Решение состоит из подключения clicked сигнала к setChecked(True) способа по QCheckBox через functools.partial(), в следующей части я показал пример с PySide4

from PyQt4 import QtCore, QtGui
from functools import partial


class Widget(QtGui.QWidget):
    def __init__(self, parent=None):
        QtGui.QWidget.__init__(self, parent)
        lay = QtGui.QVBoxLayout(self)

        button = QtGui.QPushButton("Default")
        lay.addWidget(button)

        options = ["A", "B", "C", "D", "E", "F"]
        default = ["A", "B", "C"] 

        for option in options:
            checkbox = QtGui.QCheckBox(option)
            lay.addWidget(checkbox)
            if option in default:
                button.clicked.connect(partial(checkbox.setChecked, True))


if __name__ == '__main__':
    import sys

    app = QtGui.QApplication(sys.argv)
    w = Widget()
    w.show()
    sys.exit(app.exec_())
  • 0
    Я использую PyQt4
  • 0
    большое спасибо. это работает!!
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню