- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我希望创建一个只有一个菜单栏的 QMainWindow,然后每个菜单操作都可以触发打开一个 QDialog。但是,我似乎无法让 QMainWindow 隐藏空白区域。我试图隐藏centralwidget,并尝试使用它的属性,但没有什么能让我摆脱空白区域,如下所示-
如何隐藏灰色区域?
这就是我想要实现的目标
我看到的唯一“黑客”是将 QMainWindow 的大小调整为(即,21)并将菜单栏的 setGeometry 调整为相同的(即,21),然后设置窗口的固定大小。有没有更干净的方法来解决这个问题?
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(500, 21)
self.centralwidget = QtWidgets.QWidget(MainWindow)
# self.centralwidget.setEnabled(False)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.centralwidget.sizePolicy().hasHeightForWidth())
self.centralwidget.setSizePolicy(sizePolicy)
self.centralwidget.setMaximumSize(QtCore.QSize(0, 0))
self.centralwidget.setObjectName("centralwidget")
self.menubar = QtWidgets.QMenuBar(MainWindow)
MainWindow.setCentralWidget(self.menubar)
self.menubar.setGeometry(QtCore.QRect(0, 0, 500, 21))
self.menubar.setCursor(QtGui.QCursor(QtCore.Qt.ArrowCursor))
self.menubar.setObjectName("menubar")
self.menu_Available_View = QtWidgets.QMenu(self.menubar)
self.menu_Available_View.setObjectName("menu_Available_View")
self.menuatest = QtWidgets.QMenu(self.menu_Available_View)
self.menuatest.setObjectName("menuatest")
MainWindow.setMenuBar(self.menubar)
self.actiontest = QtWidgets.QAction(MainWindow)
self.actiontest.setObjectName("actiontest")
self.menuatest.addAction(self.actiontest)
self.menu_Available_View.addSeparator()
self.menu_Available_View.addAction(self.menuatest.menuAction())
self.menubar.addAction(self.menu_Available_View.menuAction())
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
self.menu_Available_View.setTitle(_translate("MainWindow", "&Available View"))
self.menuatest.setTitle(_translate("MainWindow", "atest"))
self.actiontest.setText(_translate("MainWindow", "test"))
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
MainWindow = QtWidgets.QMainWindow()
ui = Ui_MainWindow()
ui.setupUi(MainWindow)
MainWindow.show()
sys.exit(app.exec_())
最佳答案
如果您只想与 QMenuBar 交互,则无需使用 QMainWindow:
from PyQt5 import QtCore, QtGui, QtWidgets
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
menubar = QtWidgets.QMenuBar()
menubar.setCursor(QtGui.QCursor(QtCore.Qt.ArrowCursor))
menu_Available_View = QtWidgets.QMenu(menubar)
menuatest = QtWidgets.QMenu(menu_Available_View)
actiontest = QtWidgets.QAction(menubar)
menuatest.addAction(actiontest)
menu_Available_View.addSeparator()
menu_Available_View.addAction(menuatest.menuAction())
menubar.addAction(menu_Available_View.menuAction())
menu_Available_View.setTitle("&Available View")
menuatest.setTitle("atest")
actiontest.setText("test")
menubar.setFixedHeight(menubar.sizeHint().height())
menubar.resize(500, menubar.height())
menubar.show()
sys.exit(app.exec_())
关于python - 如何隐藏QMainWindow中空的centralwidget,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59598248/
我正在尝试找出一种方法来获取一个简单的 QMainWindow 来显示一个空的 QWidget 并报告用于命令行的实际屏幕大小。什么有效(修改过的 ZetCode PyQt5 教程内容): #!/us
我尝试构建一个简单的 GUI 应用程序。然后我收到了这些警告: QLayout: Attempting to add QLayout "" to MainWindow "", which alread
我有一个 QMainWindow,其中央小部件已设置为查看黑色场景的 QGraphicsView(用于测试目的)。请注意,在下面的代码中,我使用了派生自 QGraphicsView 的类,称为 CQt
我对 Qt 有点陌生,所以决定稍微尝试一下,以便有一天我可以用 GUI 制作一些程序。我一直在玩 Windows 并遇到了一个问题。除了 QMainWindow 之外,我还创建了两个新的 QWidge
这个问题在这里已经有了答案: QWidget does not draw background color (1 个回答) 关闭 8 年前。 我有一个 Qt Designer 构建的 GUI 我正在
关闭。这个问题是not reproducible or was caused by typos .它目前不接受答案。 这个问题是由于错别字或无法再重现的问题引起的。虽然类似的问题可能是on-topi
我是 PySide 的新手。我有一个主窗口对象,它一次显示一个小部件。我一直在尝试更改 QMainWindow 类的中央小部件,以便在按下按钮时替换窗口中的可见小部件。问题是按下的按钮在 Widget
我是 Qt 新手。我在多个网站上搜索了我的问题,但找不到答案。如何向 centralWidget 添加图像? 我试过: MainWindow w; w.centralWidget()->setStyl
我有一个带有 QMainWindow 的应用程序,理想情况下应该有一个以 QGLWidget 为中心的应用程序,在外面留有空间用于工具栏和其他顶部/侧面小部件。 不幸的是,无论 QGLWidget 设
我已经编码了 QWidget MyWidget我想添加两个 MyWidget与 QVBoxLayout在 MainWindow类(与我们打开 Qt Creator 时默认提供的 MainWindow
我正在尝试学习和构建一个小型扫雷器图形用户界面应用程序。 这是它的样子: 我想做的下一件事是单击一个按钮后,按钮将设置为 hide() 并且 QLabel 将出现在同一个位置。 我的代码是这样的: .
考虑以下示例代码: from PyQt5.QtWidgets import (QApplication, QHBoxLayout, QLabel, QWidget,
我只是想进入 QT(和 KDE)程序,但在尝试向 .ui 文件(基于 QWidget) 嵌入到我的 KDE 4 程序中。 这一切都来自 KDevelop 4 提供的基本模板,所以虽然我了解发生了什么,
我是一名优秀的程序员,十分优秀!