gpt4 book ai didi

python - QtabWidget 和 QMainWindow 在一个类中

转载 作者:行者123 更新时间:2023-12-04 01:50:02 25 4
gpt4 key购买 nike

有没有办法在 QtabWidget 类中定义菜单栏?

我用 pyqt5 和 python 3.6 编写了一个停止应用程序的代码。我想将 manuBar 设置为与选项卡相同的类,但我的代码返回 qtabwidget 没有属性 QMainWindow。

这是我的代码:

import sys
from PyQt5 import QtWidgets, QtCore, QtPrintSupport, QtGui
from PyQt5.QtWidgets import *

class main_window(QTabWidget):
def __init__(self, parent=None):
super(QTabWidget, self).__init__(parent)
self.setGeometry(50, 50, 1100, 750)
self.setWindowTitle("Programm") #

self.centralWidget = QtWidgets.QWidget()
self.tabWidget = QtWidgets.QTabWidget(self.centralWidget)
self.tabWidget.setGeometry(QtCore.QRect(10, 10, 1200, 1000))

open_new_file = QAction('New', self)

mainMenu = self.menuBar()
fileMenu = mainMenu.addMenu('Projekt')


fileMenu.addAction(open_new_file)
self.table_widget = MyTableWidget(self)
self.setCentralWidget(self.table_widget)

self.show()

self.tab_v1 = QtWidgets.QWidget()
self.addTab(self.tab_v1, "Tab 1")

self.tab_v2 = QtWidgets.QWidget()
self.addTab(self.tab_v2, "Tab 2")

self.openFile = QPushButton("Choose Tab ", self.tab_v1)
self.openFile.setGeometry(QtCore.QRect(700, 25, 200, 30))


def main():
app = QApplication(sys.argv)
ex = main_window()
ex.show()
sys.exit(app.exec_())


if __name__ == '__main__':
main()

最佳答案

QTabWidget 不能有QMenuBar,你要做的就是把一个QMainWindow 的centralwidget 放到QTabWidget 上。

import sys
from PyQt5 import QtCore, QtWidgets

class Main_window(QtWidgets.QMainWindow):
def __init__(self, parent=None):
super(Main_window, self).__init__(parent)
self.setGeometry(50, 50, 1100, 750)
self.setWindowTitle("Programm")

open_new_file = QtWidgets.QAction('New', self)
mainMenu = self.menuBar()
fileMenu = mainMenu.addMenu('Projekt')
fileMenu.addAction(open_new_file)

self.tabWidget = QtWidgets.QTabWidget()
self.setCentralWidget(self.tabWidget)

self.tab_v1 = QtWidgets.QWidget()
self.tabWidget.addTab(self.tab_v1, "Tab 1")
self.openFile =QtWidgets.QPushButton("Choose Tab ", self.tab_v1)
self.openFile.setGeometry(QtCore.QRect(700, 25, 200, 30))

self.tab_v2 = QtWidgets.QWidget()
self.tabWidget.addTab(self.tab_v2, "Tab 2")

def main():
app = QtWidgets.QApplication(sys.argv)
ex = Main_window()
ex.show()
sys.exit(app.exec_())

if __name__ == '__main__':
main()

enter image description here

关于python - QtabWidget 和 QMainWindow 在一个类中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53585673/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com