小编jsh*_*ort的帖子

使用 pyqt5 和 qt 设计器从主窗口打开第二个窗口

我正在使用 pyqt5 和 QtDesigner 创建一个具有两个窗口的应用程序。主窗口“MainWindow.ui”上的按钮应该从文件“age_entry.ui”打开第二个窗口,但我似乎遗漏了一些东西。单击第一个表单上的按钮会产生此错误”:

异常“未处理的TypeError”QDialog(父:QWidget = None,标志:Union [Qt.WindowFlags,Qt.WindowType] = Qt.WindowFlags()):参数1具有意外类型'bool'

这是主窗口的代码:

# -*- coding: utf-8 -*-

import sys
from PyQt5 import uic, QtWidgets


Ui_MainWindow, QtBaseClass = uic.loadUiType("MainWindow.ui")
LandingPageUI, LandingPageBase = uic.loadUiType("age_entry.ui")

class MyApp(QtWidgets.QMainWindow, Ui_MainWindow):

    def __init__(self):
        QtWidgets.QMainWindow.__init__(self)
        Ui_MainWindow.__init__(self)
        self.setupUi(self)

        def showAgeEntryForm(self):
            self.child_win = AgeEntryForm(self)
            self.child_win.show()             

        self.btnOpenAges.clicked.connect(showAgeEntryForm)            


class AgeEntryForm(LandingPageBase, LandingPageUI):
    def __init__(self, parent=None):   
        LandingPageBase.__init__(self, parent)
        self.setupUi(self)            



if __name__ == "__main__":
    app=QtWidgets.QApplication.instance()
    if not app: 
         app = QtWidgets.QApplication(sys.argv)

    window = MyApp()
    window.show()
    sys.exit(app.exec_())
Run Code Online (Sandbox Code Playgroud)

提前致谢!

这是代码形式的MainWindow和age_entry文件:

# -*- coding: utf-8 -*-

# …
Run Code Online (Sandbox Code Playgroud)

qt qdialog childwindow pyqt5

3
推荐指数
1
解决办法
2万
查看次数

让 Enter 键的行为类似于 QTableWidget 中的 Tab

我在 PyQt5 和 Qt Designer 中使用 QTableWidget 来创建数据输入表。我想要的是一种简单的方法,使“Enter”keyPressEvent 在表格中移动,就像按下 Tab 按钮一样。以下代码捕获 Enter 键按下事件。如何让它移动光标?

def keyPressEvent(self, ev):        
    if ev.key() in (QtCore.Qt.Key_Return, QtCore.Qt.Key_Enter):
        print("Enter key pressed")
Run Code Online (Sandbox Code Playgroud)

python pyqt qtablewidget pyqt5

1
推荐指数
1
解决办法
1667
查看次数

标签 统计

pyqt5 ×2

childwindow ×1

pyqt ×1

python ×1

qdialog ×1

qt ×1

qtablewidget ×1