标签: qmainwindow

如何设置QMainWindow标题

如何设置QMainWindow的标题?

我尝试使用谷歌搜索并找到了setCaption(),但它似乎不再适用于Qt 4.

c++ qt qmainwindow

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

Qt:设置QMainWindow的大小

我是Qt的新手,所以我想知道是否有办法将a的大小设置QMainWindow为(例如)用户桌面的70%.
我尝试了伸展因子,但它没有用.QWidget::setFixedSize我认为,只有像素数才能工作.

size qt qmainwindow

26
推荐指数
3
解决办法
6万
查看次数

多个QMainWindow实例?

QMainWindow是Qt应用程序中的主窗口.所以通常你只有一个,但是QMainWindow你的应用程序中可能有多个实例吗?

我正在努力将基于Qt的GUI应用程序B集成到另一个基于Qt的GUI应用程序A中.这两个应用程序都有一个QMainWindow,我正在考虑作为第一步创建一个QMainWindowQMainWindows的选项卡.这样,它可以让我专注于将GUI B的后端连接到A的后端,而无需在用户界面本身中更改任何内容.这是一种可行的方法,还是您有其他建议?

c++ qt qmainwindow

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

PyQt - 如何向QMainWindow添加单独的UI小部件

我最近才开始编程和Python(PyQt).我有我的主要QMainWindow课程.但我想将它与UI小部件分开,以便所有窗口内容(菜单,工具栏,常用按钮)都在QMainWindow,但所有程序/ UI特定的小部件(pusgbuttons,组合框,图像,复选框等)都在一个单独的QWidget类中.但我不确定我是否正确行事.

  1. 我有布局问题 - 隐藏的东西覆盖菜单,以便它们不能被鼠标点击,我想我没有正确地将我的UI窗口小部件添加到主窗口

我是这样做的:

class MyMainWindow(QMainWindow):
    def __init__(self, parent = None):
        super(MyMainWindow, self).__init__(parent)

        self.main_widget = QWidget(self)
        ...
        self.form_widget = FormWidget(self) 
        #This is my UI widget

        self.main_layout = QVBoxLayout(self.main_widget)
        self.main_layout.sizeConstraint = QLayout.SetDefaultConstraint
        self.main_layout.addWidget(self.form_widget.main_widget) 
        #form_widget has its own main_widget where I put all other widgets onto

        self.main_widget.setLayout(self.main_layout)
        self.setCentralWidget(self.main_widget)
Run Code Online (Sandbox Code Playgroud)
  1. 我已经看过其他Python程序,其中应用程序被分解为许多小代码文件(据我所知,主类中的所有内容都是不可读或无法管理的).

你有什么建议将代码分成小块?怎么做得更好?或者对于UI来说,它们都可以在一个大的地方?我应该将UI代码/类分解为单独的文件吗?

谢谢.

[解决了]

我发现了我的错误 - 我从UI小部件类中删除了main_widget(现在所有UI小部件都直接放在UI类小部件本身上)并且只执行此操作:

self.main_layout.addWidget(self.form_widget)
Run Code Online (Sandbox Code Playgroud)

没有菜单的问题

python layout pyqt qmainwindow

19
推荐指数
3
解决办法
5万
查看次数

PyQt:RuntimeError:包装的C/C++对象已被删除

如果我运行此代码:

    #!/usr/local/bin/    python3

import sys 
from PyQt4.QtCore import *
from PyQt4.QtGui import *


class Window(QMainWindow):

    def __init__(self):
        super().__init__()
        self.button1 = QPushButton("1")
        self.button2 = QPushButton("2")
        self.setCentralWidget(self.button1)
        self.button1.clicked.connect(lambda: self.setCentralWidget(self.button2))
        self.button2.clicked.connect(lambda: self.setCentralWidget(self.button1))
        self.show()

if __name__ == '__main__':

    import sys 
    app = QApplication(sys.argv)
    window = Window()
    sys.exit(app.exec_())
Run Code Online (Sandbox Code Playgroud)

...我得到这个输出:

Traceback (most recent call last):
  File "test.py", line 16, in <lambda>
    self.button2.clicked.connect(lambda: self.setCentralWidget(self.button1))
RuntimeError: wrapped C/C++ object of type QPushButton has been deleted
Run Code Online (Sandbox Code Playgroud)

我不明白为什么要删除该对象.窗口应该保持对它的引用.我已经彻底调查了这些帖子: 了解"基础C/C++对象已被删除"错误是否 可以查询PyQt4 QObject以确定底层C++实例是否已被销毁?

为什么按钮被删除?

garbage-collection pyqt pyqt4 qobject qmainwindow

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

你能为QDialog添加一个工具栏吗?

我正在开发一个项目,需要调用带有工具栏的模态窗口,以便在加载之前对某些数据进行一些处理.我需要工具栏的原因是用户有几个可以组合的不同选项.

这里显而易见的选择是模态对话框(我现在正在使用它).问题是我想要一个工具栏.这是一个两部分问题:

  1. 是否可以添加工具栏QDialog?(也可以在Qt Designer中执行此操作吗?)
  2. 如果1.不可能,我该如何制作QMainWindow模态?

c++ qt modal-dialog qdialog qmainwindow

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

如何使用PyQt5设置窗口图标?

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

class Application(QMainWindow):
    def __init__(self):
        super(Application, self).__init__()
        self.setWindowIcon(QtGui.QIcon('icon.png'))
Run Code Online (Sandbox Code Playgroud)

我正在尝试设置一个窗口图标(窗口的左上角),但正常的图标却消失了.

我尝试了许多图标分辨率(8x8,16x16,32x32,64x64)和扩展名(.png和.ico).

我究竟做错了什么?

python icons qmainwindow pyqt5 python-3.6

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

PyQt:单击按钮后更改GUI布局

好吧,我从Tkinter跳到PyQt,因为PyQt更先进,更好用.但!我在这里遇到了一些麻烦.

我按下主屏幕上的一个按钮后,我正在尝试更改GUI布局.我按下主GUI页面的第一个按钮,然后我希望它转到我将创建的另一个GUI页面.我一直坐在这里几个小时试图找到一些方法来做到这一点 - 没有YouTube上的视频,我没有找到任何帮助的堆栈溢出页面.所以我了解到有一个Qt Designer程序.我不喜欢这样的节目,所以请在回答时尽量避免使用它.

PS:我不想使用多个.py文件,但如果没有其他方法,我想我将不得不这样做.

到目前为止,这是我的代码:

class Window(QtGui.QMainWindow):

    def __init__(self):
        super(Window, self).__init__()
        self.setGeometry(50, 50, 400, 450)
        self.setFixedSize(400,450)
        self.setWindowTitle(" Tool")
        self.setWindowIcon(QtGui.QIcon('PhotoIcon.png'))
        self.home()

    def home(self):
        ToolsBTN = QtGui.QPushButton('text', self)
        ToolsBTN.clicked.connect(ToolTab)
        ToolsBTN.move(50, 350)
        CPSBTN = QtGui.QPushButton('text', self)
        CPSBTN.clicked.connect(QtCore.QCoreApplication.instance().quit)
        CPSBTN.move(150, 350)
        CreatorBTN = QtGui.QPushButton('Creator', self)
        CreatorBTN.clicked.connect(QtCore.QCoreApplication.instance().quit)
        CreatorBTN.move(250, 350)
        self.show()

class ToolTab(QtGui.QMainWindow):

    def __init__2(self):
        super(ToolTab, self).__init__2()
        self.setGeometry(50, 50, 400, 450)
        self.setFixedSize(400,450)
        self.setWindowTitle(" Tool")
        self.setWindowIcon(QtGui.QIcon('PhotoIcon.png'))
        self.Toolsgui()

    def Toolsgui(self):
        CPSBTN = QtGui.QPushButton('123', self)
        CPSBTN.clicked.connect(QtCore.QCoreApplication.instance().quit)
        CPSBTN.move(150, 300)
        self.show()

def Run():
    app = QtGui.QApplication(sys.argv)
    GUI = Window()
    GUITOOL …
Run Code Online (Sandbox Code Playgroud)

python pyqt pyqt4 qmainwindow

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

如何更改QMainWindow边框和标题栏的颜色?

QMainWindow下面被分配使用一个QSS暗灰色的背景色.我还想更改边框的颜色和标题栏的颜色.

如何实现对QMainWindow边框和标题栏外观的控制?

我想知道如何更改颜色以及如何控制边框宽度和标题栏的高度.

在此输入图像描述

from PyQt4.QtCore import *
from PyQt4.QtGui import *

appStyle="""
QMainWindow{
background-color: darkgray;
}
"""

class GUI(QMainWindow):
    def __init__(self):
        super(GUI, self).__init__()  
        self.setStyleSheet(appStyle)

if __name__ == '__main__': 
    if not QApplication.instance(): app=QApplication([])
    w=GUI() 
    w.setStyleSheet(appStyle)
    w.show() 
    w.raise_()

    sys.exit(app.exec_())
Run Code Online (Sandbox Code Playgroud)

python qt pyqt qmainwindow qtstylesheets

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

AttributeError:'Ui_MainWindow'对象没有属性'setCentralWidget'PyQt5

我仍然在为我的数据库的GUI工作,现在我有一个不同的错误:

Traceback (most recent call last):
  File "G:\Python\Database Kast Thuis\PyQt Test\MainMenu_ui.py", line 84, in <module>
    ex = Ui_MainWindow()
  File "G:\Python\Database Kast Thuis\PyQt Test\MainMenu_ui.py", line 16, in __init__
    self.setupUi(self)
  File "G:\Python\Database Kast Thuis\PyQt Test\MainMenu_ui.py", line 55, in setupUi
    MainWindow.setCentralWidget(self.centralwidget)
AttributeError: 'Ui_MainWindow' object has no attribute 'setCentralWidget'
Run Code Online (Sandbox Code Playgroud)

我不了解PyQt的事情,所以我不明白问题是什么.

代码是:(这是编辑版本,原始版本发布如下)

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

# Form implementation generated from reading ui file 'Main_Menu.ui'
#
# Created by: PyQt5 UI code generator 5.5.1
#
# WARNING! All changes made in this file will …
Run Code Online (Sandbox Code Playgroud)

python pyqt qt-designer qmainwindow pyqt5

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