我想在我QPushButton的另一边堆叠一些物体QMenuBar.
这就是我的窗口现在的样子:

这就是我希望它看起来的样子(我已经拍摄了图片):

我知道在motif小部件样式中,帮助菜单与右侧对齐,但我坚持plastique,所以这对我来说不是问题.
我正在使用Qt4.8.有任何想法吗?
我可以改变字体和字体颜色一的QPushButton使用样式表.问题是在旧的Windows主题下,禁用的按钮显示阴影字体,但我不知道如何通过StyleSheets摆脱这个阴影前面.任何人都可以建议你的想法.提前致谢.
当我 QApplication::setStyleSheet() 使用以下样式表时
QPushButton {
border-radius: 2px;
padding: 0.2em 0.2em 0.3em 0.2em;
border: 1px solid rgb(100, 100, 100);
background: qlineargradient(x1:0, y1:0, x2:0, y2:1,
stop:0 #f4f4f4, stop:0.1 #8F8F8F, stop:1 #7B7B7B);
color: white;
}
Run Code Online (Sandbox Code Playgroud)
所有按钮的大小都被截断为文本的大小。例如,OK 按钮变成方形。效果与我在 QPushButton 上尝试的任何其他样式表相同。如何设置按钮样式表而不影响其默认大小?
我知道,这是一个初学者的问题,但我必须尝试用goolge/stackoverflow解决它,但我没有找到一个好的答案.问题是,我想在qpushbutton中添加一个图标.但它不起作用/找不到文件?!,问题出在哪里?
...轮廓
[...]OTHER_FILES += \
Readme.txt \
icons/newFolder.png \
icons/newFile.png
Run Code Online (Sandbox Code Playgroud)
class.cpp
//toolbar
QToolBar *tool = new QToolBar();
QPushButton *btn = new QPushButton();
btn->setIcon(QIcon(":/icons/newFile.png"));
tool->addWidget(btn);
addToolBar(tool);
Run Code Online (Sandbox Code Playgroud)
最好的问候:D克里斯
我正在尝试做一个程序,用声音进行一些操作。我的问题是我有 3 个播放按钮和 3 个标签。我想要无论我单击“播放”按钮的哪个,都应该播放名称在按钮附近标签中的声音。我有一个没有任何参数的播放插槽。那么,我如何分别连接到每个标签的每个播放按钮?其实我可以写3个不同的播放函数,但是因为我还有一些其他的函数,所以会太长和混乱。另外,我需要 3 个播放按钮,因为我想同时播放 3 个声音。
我目前正在学习qt。我正在尝试构建一个带有81的小型GUI程序QPushButton。
我想将这些按钮设置为9行9列。我认为可以实现此布局的最佳方法是使用QGridLayout。
运行后的样子如下:
我尝试了多种更改按钮大小的方法,但是按钮大小仍然保持默认。
这是我的代码:
void MainWindow::setButtons()
{
const QSize btnSize = QSize(50, 50);
for(int i = 0; i < 81; i++) {
btn[i] = new QPushButton(centralWidget);
btn[i]->setText(QString::number(i));
btn[i]->resize(btnSize);
}
QGridLayout *btnLayout = new QGridLayout(centralWidget);
for(int i = 0; i < 9; i++) {
for(int j = 0; j < 9; j++) {
btnLayout->addWidget(btn[j + i * 9], 0 + i, j);
btnLayout->setSpacing(0);
}
}
centralWidget->setLayout(btnLayout);
}
Run Code Online (Sandbox Code Playgroud)
那么我该怎么做才能真正更改这些按钮的大小?
谢谢。
先生们。
我有非常简单的 PyQT5 应用程序。我动态创建了按钮并连接到某些功能。
class App(QWidget):
...
def createButtons(self):
...
for param in params:
print("placing button "+param)
button = QPushButton(param, checkable=True)
button.clicked.connect(lambda: self.commander())
Run Code Online (Sandbox Code Playgroud)
我有指挥官方法:
def commander(self):
print(self.sender().text())
Run Code Online (Sandbox Code Playgroud)
所以我可以访问单击的按钮。但是如果我想访问以前点击过的按钮怎么办?还是主窗口中的另一个元素?怎么做?
我想要的是:
def commander(self):
print(self.sender().text())
pressedbutton = self.findButtonByText("testbutton")
pressedbutton.setChecked(False)
Run Code Online (Sandbox Code Playgroud)
或者
pressedbutton = self.findButtonBySomeKindOfID(3)
pressedbutton.setChecked(False)
Run Code Online (Sandbox Code Playgroud)
任何帮助将不胜感激!
我想写一个if条件作为QPushButton. if如果按钮已启用,我想执行。那么,我如何检查按钮的状态。
代码:
self.pushButton = QtGui.QPushButton()
self.pushbutton.setEnabled(False)
Run Code Online (Sandbox Code Playgroud)
self.pushbutton.setEnabled(False) ##some where in the another class I have enabled it this line will not be executed all the time,so I want the check state.
Run Code Online (Sandbox Code Playgroud)
if self.pushbutton.checkstate() == Enabled: ##??? How to write this condition?
some code I want to execute
Run Code Online (Sandbox Code Playgroud) 我需要创建一个具有三种状态的按钮:
我想用这个按钮实现的逻辑是,每当这个按钮被点击时,我希望系统进入中间状态并等待一个事件。
在其他的方式,当状态转变unclicked --> intermediate -- > clicked,然后clicked --> intermediate -->unclicked。
Qt 支持实现这种按钮吗?如果是这样,如何?
我应该提到我已经阅读了这些但我仍然无法实现我的目标:
[ QtCore.QObject.connect 在循环中只影响最后一个实例
我的目标是制作一个 linux 'launcher' 应用程序。按钮创建、放置等工作就像一个魅力,但有一个问题 - 所有按钮触发相同的回调 - 最后一个在按钮创建循环中连接。
这是脚本的基本版本,用于说明我正在尝试执行的操作:
class App(QMainWindow):
def launch(self, filepath):
subprocess.run(filepath)
def __init__(self):
super(App, self).__init__()
for btn in matrix:
filepath = matrix[btn]['path']
icon = matrix[btn]['setIcon']
posx = matrix[btn]['posx']
posy = matrix[btn]['posy']
matrix[btn] = QToolButton(self)
matrix[btn].setIcon(QIcon(icon))
matrix[btn].setIconSize(QSize(64, 64))
matrix[btn].resize(100, 100)
matrix[btn].move(posx, posy)
matrix[btn].clicked.connect(lambda launch: self.launch(filepath))
self.initUI()
def initUI(self):
self.setGeometry(150, 150, 1250, 650)
self.setWindowTitle('LinuxLauncher')
self.show()
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = App()
sys.exit(app.exec_())
Run Code Online (Sandbox Code Playgroud)
我知道有一个答案,但我已经研究了几个小时 - 我很感激有人能帮我解决这个问题 - …
qpushbutton ×10
qt ×6
c++ ×4
python ×3
pyqt5 ×2
qt4 ×2
qt4.8 ×2
linux ×1
pyqt ×1
pyqt4 ×1
qgridlayout ×1
qmenubar ×1
qt-designer ×1
qt4.7 ×1
qt5 ×1
stylesheet ×1