我试图在Qt Designer中默认不显示QLabel.我可以硬编码,但我想知道是否有办法使用设计师设置它.
m_uiForm.aLabel->setVisible(false);
Run Code Online (Sandbox Code Playgroud) 在Qt 4.8.0的设计器中重现的步骤
当我单击上面的一个布局按钮时,它不会更改页面QWidget的布局,即使我已经明确选择了页面,它也会更改对话框的布局.
这是设计师的错误吗?我错过了什么吗?我真的不想以编程方式添加布局,因为这使我无法在同一.ui文件中布局设计器中的页面
我很难显示从当前图标主题中选择的QAction的图标.我用Qt设计师制作了ui并将其导出pyuic4 sample.ui > sample.py.从主题设置图标后self.actionSample.setIcon(QtGui.QIcon.fromTheme(_fromUtf8("document-open"))),我得到以下源代码:
from PyQt4 import QtCore, QtGui
import sys
try:
_fromUtf8 = QtCore.QString.fromUtf8
except AttributeError:
_fromUtf8 = lambda s: s
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName(_fromUtf8("MainWindow"))
MainWindow.resize(800, 600)
self.centralwidget = QtGui.QWidget(MainWindow)
self.centralwidget.setObjectName(_fromUtf8("centralwidget"))
MainWindow.setCentralWidget(self.centralwidget)
self.statusbar = QtGui.QStatusBar(MainWindow)
self.statusbar.setObjectName(_fromUtf8("statusbar"))
MainWindow.setStatusBar(self.statusbar)
self.toolBar = QtGui.QToolBar(MainWindow)
self.toolBar.setObjectName(_fromUtf8("toolBar"))
MainWindow.addToolBar(QtCore.Qt.TopToolBarArea, self.toolBar)
self.actionSample = QtGui.QAction(MainWindow)
self.actionSample.setObjectName(_fromUtf8("actionSample"))
self.actionSample.setIcon(QtGui.QIcon.fromTheme(_fromUtf8("document-open")))
self.toolBar.addAction(self.actionSample)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
if __name__ == "__main__":
app = QtGui.QApplication(sys.argv)
window = QtGui.QMainWindow()
ui = Ui_MainWindow()
ui.setupUi(window)
window.show()
app.exec_()
Run Code Online (Sandbox Code Playgroud)
当我执行它时,工具栏不会显示图标'document-open'.这是一个错误还是我做错了什么?
谢谢
当我创建"命令链接按钮"(QCommandLinkButton)时,它有相对漂亮的绿色箭头图标.

我想看看我能选择哪些其他漂亮的图标.当我尝试更改图标时,[Theme]显示而不是路径或某些GUI选择对话框:

我还注意到了上下文菜单:

当我从主题中单击设置图标时,再次期待一些GUI选择列表,我只得到一个文本字段:

我在想什么:

绿色箭头的图标列表在哪里?
我正在尝试使用PyInstaller将.py脚本导出到.exe,它依赖于使用Qt Designer创建的.ui文件.
我可以确认我的.py脚本在通过PyCharm运行时工作正常 - 我能够看到我用.ui文件创建的GUI.
但是,当我将.py脚本导出到.exe并启动它时,我在命令行中收到以下错误:
C:\Users\giranm>"C:\Users\giranm\PycharmProjects\PyQt Tutorial\dist\secSearch_demo.exe"
Traceback (most recent call last):
File "secSearch_demo.py", line 13, in <module>
File "site-packages\PyQt4\uic\__init__.py", line 208, in loadUiType
File "site-packages\PyQt4\uic\Compiler\compiler.py", line 140, in compileUi
File "site-packages\PyQt4\uic\uiparser.py", line 974, in parse
File "xml\etree\ElementTree.py", line 1186, in parse
File "xml\etree\ElementTree.py", line 587, in parse
FileNotFoundError: [Errno 2] No such file or directory: 'C:\\Users\\giranm\\securitySearchForm.ui'
Failed to execute script secSearch_demo
Run Code Online (Sandbox Code Playgroud)
出于某种原因,.exe文件正在寻找路径中的.ui文件 - C:\ Users\giranm \
但是,已经做过一些研究,我被告知我需要使用os.getcwd()并确保我的脚本中有完整的路径.即使使用下面的代码,我仍然会尝试找到.ui文件时出错.
PyInstaller:IOError:[Errno 2]没有这样的文件或目录:
# import relevant modules etc...
cwd = os.getcwd()
securitySearchForm …Run Code Online (Sandbox Code Playgroud) 我正在尝试在Qt中创建一个圆形按钮.QPushButton在设计器中创建了一个带有单个按钮的简单表单.我正试图将它变成一个圆形按钮setMask().一旦setMask()应用,按钮就会消失.是否需要创建自定义窗口小部件来制作圆形按钮?
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QMessageBox>
#include <QtGui/QPushButton>
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
ui->pushButton->setText("Test Text");
ui->pushButton->setFixedHeight(200);
ui->pushButton->setFixedWidth(200);
//Set Starting point of region 5 pixels inside , make region width & height
//values same and less than button size so that we obtain a pure-round shape
QRegion* region = new QRegion(*(new QRect(ui->pushButton->x()+5,ui->pushButton->y()+5,190,190)),QRegion::Ellipse);
ui->pushButton->setMask(*region);
ui->pushButton->show();
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::on_pushButton_clicked()
{
QMessageBox msgbox;
msgbox.setText("Text was set");
msgbox.show();
}
Run Code Online (Sandbox Code Playgroud)
注意:如果按钮是在代码中创建的,并且在显示窗口之前应用于窗口,则会显示该按钮.我想使用Qt …
假设我有about.ui文件.如何从我的.ui文件中创建"about.h"和"about.cpp"?我也要创建一个.moc文件?我怎样才能在创造者之后编译这个以确定是否所有正确的?
我是Qt和GUI编程的新手,但我已经在python中编写了相当多的代码 - 编写模块等等.我需要为我的一些旧模块开发简单的GUI.
我想做的事情可以通过以下简单的例子来表示:
def f(x, y):
z = x + y
return z
Run Code Online (Sandbox Code Playgroud)
对于此功能,我将为x和y提供两个行编辑,为z提供一个.现在我创建一个按钮'计算',当我这样做时,我希望它从行编辑中获取x和y运行函数f(x,y)并将输出提供给z.
有没有办法直接在Qt Designer中添加f(x,y)用python编写的函数?
如果不是什么选择?
我有一个QT表单,其中包含数百个小部件,并且可以立即将它们全部放在屏幕上(根据需要)我需要使它们非常小.使用时,表格将具有固定(不可调整大小)的大小.我可以将窗口小部件的大小调整到所需的高度/宽度,并使用适当的(小)字体大小,使其大小策略"固定"等.但是,一旦我开始将它们放入布局中,它们就会产生一些,大得多的最小值尺寸.对于小部件的高度尤其如此,但宽度有时也会受到影响.
如果我知道如何做以下三件事之一,我的问题就会解决:
更改小部件的布局默认最小大小.
强制布局不要改变窗口小部件的大小.
使用Qt设计器可以在不使用布局的情况下以网格状格式很好地对齐窗口小部件.
我广泛搜索了Qt设计师的文档和SO,但无济于事.
非常感谢帮助
我正在尝试在 qt 设计器中创建切换按钮。我也在互联网上参考,但我找不到如何做到这一点。谁能知道如何做切换开关按钮。我已附上示例按钮图像。
编辑
我在下面创建了一个文本框,我想要这个切换按钮。当我尝试添加时,它会抛出错误。如何在文本区域下方添加按钮?我也附上了代码片段。
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtCore import QPropertyAnimation, QRectF, QSize, Qt, pyqtProperty
from PyQt5.QtGui import QPainter
from PyQt5.QtWidgets import (
QAbstractButton,
QApplication,
QHBoxLayout,
QSizePolicy,
QWidget,
)
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(472, 180)
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.url = QtWidgets.QLineEdit(self.centralwidget)
self.url.setGeometry(QtCore.QRect(30, 20, 411, 31))
font = QtGui.QFont()
font.setFamily("MS Shell Dlg 2")
font.setPointSize(10)
font.setBold(True)
font.setWeight(75)
self.url.setFont(font)
self.url.setAutoFillBackground(False)
self.url.setStyleSheet("border-radius:10px;")
self.url.setAlignment(QtCore.Qt.AlignCenter)
self.url.setCursorMoveStyle(QtCore.Qt.LogicalMoveStyle)
self.url.setObjectName("url")
MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QtWidgets.QMenuBar(MainWindow)
self.menubar.setGeometry(QtCore.QRect(0, 0, 472, 21))
self.menubar.setObjectName("menubar")
MainWindow.setMenuBar(self.menubar)
self.statusbar = …Run Code Online (Sandbox Code Playgroud) qt-designer ×10
qt ×5
python ×4
pyqt ×3
pyqt4 ×3
qt-creator ×2
c++ ×1
icons ×1
layout ×1
pyinstaller ×1
pyqt5 ×1
qlabel ×1
qt3 ×1
qt4 ×1