我试图建立一个对话框,并为它编写一个测试用例。在
这是我的对话框代码-
import sys
import os.path as osp
from qtpy import QT_VERSION
from qtpy import QtCore
from qtpy import QtGui
from qtpy import QtWidgets
QT5 = QT_VERSION[0] == '5' # NOQA
here = osp.dirname(osp.abspath(__file__))
def newIcon(icon):
icons_dir = osp.join(here, 'icons')
return QtGui.QIcon(osp.join(':/', icons_dir, '%s.png' % icon))
class Example(QtWidgets.QMainWindow):
count = 0
def __init__(self, *args, **kwargs):
super(Example, self).__init__(*args, **kwargs)
self.meta = MetaDialog()
self.meta.popUp()
class MetaDialog(QtWidgets.QDialog):
def __init__(self, parent=None,):
super(MetaDialog, self).__init__(parent)
self.parent = parent
self.setWindowTitle('Meta information')
self.street1 = QtWidgets.QLabel('street1')
self.street2 = QtWidgets.QLabel('street2')
self.street1_edit = QtWidgets.QLineEdit()
self.street2_edit = QtWidgets.QLineEdit()
grid = QtWidgets.QGridLayout()
grid.setSpacing(10)
grid.addWidget(self.street1, 0, 0)
grid.addWidget(self.street1_edit, 0, 1)
grid.addWidget(self.street2, 1, 0)
grid.addWidget(self.street2_edit, 1, 1)
# buttons
self.buttonBox = bb = QtWidgets.QDialogButtonBox(
QtWidgets.QDialogButtonBox.Ok | QtWidgets.QDialogButtonBox.Cancel,
QtCore.Qt.Horizontal,
self,
)
bb.button(bb.Ok).setIcon(newIcon('done'))
bb.button(bb.Cancel).setIcon(newIcon('undo'))
bb.accepted.connect(self.validate)
bb.rejected.connect(self.reject)
grid.addWidget(bb, 11,0)
self.setLayout(grid)
def validate(self):
self.accept()
def popUp(self, meta=None):
return (self.street1_edit.text(),
self.street2_edit.text(),
) if self.exec_() else None
if __name__ == '__main__':
app = QtWidgets.QApplication(sys.argv)
ex = Example()
# ex.show()
sys.exit(app.exec_())
当我试图创建测试用例并运行它时,对话框就会弹出。我只想知道是否为对话框设置了默认值,不想弹出它。在
^{pr2}$
exec_()
调用若要使QDialog可见,则不应调用它:相关问题 更多 >
编程相关推荐