PyQt5 自定义小部件在另一个 Window 中打开
PyQt5 Custom Widget Opens in Another Window
我最近开始使用 PyQt5。我想创建一个自定义小部件,然后将其插入应用程序的主 window。
自定义小部件:
class ScoreCard(QtWidgets.QWidget):
def __init__(self, parent=None):
super(ScoreCard, self).__init__(parent=parent)
self.setWindowFlags(QtCore.Qt.CustomizeWindowHint)
self.pressing = False
self.init_ui()
self.show()
def init_ui(self):
# Layout in here
这是主要的应用程序:
from PyQt5.QtWidgets import *
from scorecard import ScoreCard
import sys
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
self.initUi()
self.show()
def initUi(self):
self.setGeometry(300,300,800,700)
window_layout = QVBoxLayout()
recent_playcard = ScoreCard()
window_layout.addWidget(recent_playcard)
self.setLayout(window_layout)
if __name__ == "__main__":
app = QApplication(sys.argv)
execute = MainWindow()
sys.exit(app.exec_())
为什么每当我 运行 主应用程序时,自定义小部件就会出现在另一个 window 中?我什至尝试删除框架并将父级设置为 none,但是 none 改变了这种行为。我该如何解决这个问题?
看来我混淆了 QMainWindow
和 QDialog
我应该为主应用程序使用中央小部件而不是设置布局..
我最近开始使用 PyQt5。我想创建一个自定义小部件,然后将其插入应用程序的主 window。
自定义小部件:
class ScoreCard(QtWidgets.QWidget):
def __init__(self, parent=None):
super(ScoreCard, self).__init__(parent=parent)
self.setWindowFlags(QtCore.Qt.CustomizeWindowHint)
self.pressing = False
self.init_ui()
self.show()
def init_ui(self):
# Layout in here
这是主要的应用程序:
from PyQt5.QtWidgets import *
from scorecard import ScoreCard
import sys
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
self.initUi()
self.show()
def initUi(self):
self.setGeometry(300,300,800,700)
window_layout = QVBoxLayout()
recent_playcard = ScoreCard()
window_layout.addWidget(recent_playcard)
self.setLayout(window_layout)
if __name__ == "__main__":
app = QApplication(sys.argv)
execute = MainWindow()
sys.exit(app.exec_())
为什么每当我 运行 主应用程序时,自定义小部件就会出现在另一个 window 中?我什至尝试删除框架并将父级设置为 none,但是 none 改变了这种行为。我该如何解决这个问题?
看来我混淆了 QMainWindow
和 QDialog
我应该为主应用程序使用中央小部件而不是设置布局..