我想让我的应用笔记本电脑友好.我可以选择到任何地方,但如果我选择QPushButton我不能按Enter,只能用space.
有什么问题?如何使其可压Enter?
我是新来的Qt之间的差异QPushButton,并QToolButton没有那么清晰.
我知道a QToolButton通常用于a QToolBar,它通常只显示一个图标,没有文字,但我不太明白两者之间的主要区别.
它有什么更大的区别吗?我QPushButton应该何时使用,何时使用QToolButton?
我想知道这个使用最合适的按钮,我需要执行一些GUI测试,也许它可能是相关的.
QPushButton可以有图标,但我需要设置动画图标.这该怎么做?我创建了新的类,QPushButton但是如何将icon替换QIcon为QMovie?
我正在尝试在Qt5中更改QAbstractButton(QPushButton或QCheckBox)的背景颜色并且没有运气.
这没有任何作用:
pButton->setAutoFillBackground(true);
QPalette palette = pButton->palette();
palette.setColor(QPalette::Window, QColor(Qt::blue));
pButton->setPalette(palette);
pButton->show();
Run Code Online (Sandbox Code Playgroud)
如果我尝试更改样式表:
pButton->setStyleSheet("background-color: rgb(255,255,0);");
Run Code Online (Sandbox Code Playgroud)
然后Qt举起双手,画出一个看起来很粗糙的块状按钮.
有一个标题为" 如何更改QWidget的背景颜色 "的页面,但它只讨论了这两种方法.
还有一个页面" Qt Style Sheets Examples "暗示如果你想改变背景颜色,你必须接管绘制按钮的所有方面,这看起来有点矫枉过正.
我需要这个在Mac,Windows和Ubuntu Linux上运行,如果我必须手动绘制关于按钮的所有内容3次(每个平台一次),这真的不是一件幸福的事情.
我错过了一些明显的东西吗
ps"背景颜色"是指按钮周围的区域,而不是按钮面上文本下的颜色.
我正在OSX Mavericks上编写新手Qt5代码,并且想要覆盖给定小部件的StyleSheet的一个属性:值对.
如果我运行以下自包含的演示代码:
#include <QApplication>
#include <QMainWindow>
#include <QtGui>
#include <QPushButton>
int
main( int argc, char *argv[] ) {
QApplication app( argc, argv );
QMainWindow* mw = new QMainWindow();
QPushButton* AButton = new QPushButton( "A Button", mw );
mw->show();
return app.exec();
}
Run Code Online (Sandbox Code Playgroud)
我得到了一个很好的按钮,默认为Macintosh风格 - 圆角,按下时标准OSX-蓝色等:

但是,如果我设置样式表以使背景按钮颜色为红色,那么在此过程中我似乎失去了所有其他OSX样式默认值 - 没有更多的圆角,标准边距等:
#include <QApplication>
#include <QMainWindow>
#include <QtGui>
#include <QPushButton>
int
main( int argc, char *argv[] ) {
QApplication app( argc, argv );
QMainWindow* mw = new QMainWindow();
QPushButton* AButton = new QPushButton( "A …Run Code Online (Sandbox Code Playgroud) 我有QDialog一个QDialogButtonBox." 确定"和" 取消"按钮处于活动状 有时我会根据对话框的状态禁用或隐藏"确定"按钮.看来,无论我做什么,Enter键总是激活OK按钮.我真的不希望这种情况发生.我试过了:
并且通过上述所有组合,Enter键仍然接受对话框.有没有人知道如何阻止这个?看起来我应该能够阻止这么简单的事情吗?
我正在使用此代码在大小为16的按钮上设置标签
ui->pushButton->setText(tr("<font size=16>Tank 1 \n %1%2C</font>").arg(szTemp).arg(degree));
Run Code Online (Sandbox Code Playgroud)
但我得到了<font size=16>Tank 1 005c</font>按钮上写的输出.
如何设置字体大小?
我在C++上有一个Qt应用程序,我想为QPushButton分配一个插槽.但我想传递一些参数,因为我有多个QPushButton做类似的事情,所以我想要一个函数,但有一个参数,但Qt一直说我没有像这样的插槽.有人能告诉我为什么以及如何做到这一点?
先感谢您
在.h文件中我有:(它在开始时是私有的,但我在搜索问题时更改了它)
public slots:
void handleButton(int row, int col);
Run Code Online (Sandbox Code Playgroud)
然后在.cpp中:
void fieldWindow::handleButton(int row, int col){
cout << row << " " << col << endl;
}
Run Code Online (Sandbox Code Playgroud)
再次在同一个.cpp中:
connect(this->buttonsField[i][j], SIGNAL(released()), this, SLOT(handleButton(i,j)));
Run Code Online (Sandbox Code Playgroud)
这是在两个嵌套的循环,这样做i和 j的明确界定.
我的错误是:
QObject::connect: No such slot fieldWindow::handleButton(i,j) in ..\Proj1\fieldwindow.cpp:41
QObject::connect: (receiver name: 'fieldWindow')
Run Code Online (Sandbox Code Playgroud)
我在互联网上读到了一些我应该说的内容handleButton(int, int);但是我应该如何传递这些论点呢?
我使用的是Qt 5.3.0.当我在QPushButton的选中状态上应用一些背景颜色时,按钮将在选中时用灰色点(我想要的背景颜色)填充.
这是一个很小的测试程序(使用qtcreator,但它也可以通过编码完成):1,创建一个qt应用程序2,拖入QPushButton,将其设置为flat并检查3,在w.show()之前添加这些行
w.setStyleSheet("\
QPushButton { \
color:white; \
} \
QPushButton:checked{\
background-color: rgb(80, 80, 80);\
}\
QPushButton:hover{ \
background-color: grey; \
border-style: outset; \
} \
");
Run Code Online (Sandbox Code Playgroud)
4,运行应用程序并检查按钮
你会看到按钮变成了点缀但是我需要选中的按钮是纯色的rgb(80,80,80).我错过了什么?
我有一个使用Qt Creator用C++编写的Android应用程序.
Qt版本升级后(从4.8到5.4)我发现了一个奇怪的行为:所有QPushButton都有重复的文本标签,一个位于正确位置,另一个位置偏移了一点.此行为可以在Acer Iconia Tab A700上观察到,但在其他设备(Samsung Galaxy Tab)上则无法观察到.

我在QT Creator中创建了一个全新的QDialog菜单,只使用了图形编辑器,但它显示了同样的东西.
别人是否观察过同样的事情?我在Qt中很新,并且不知道如何解决这个问题......
以下是一些片段:
mydialog.ui
<widget class="QPushButton" name="startButton">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Minimum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>Start</string>
</property>
<property name="default">
<bool>true</bool>
</property>
</widget>
Run Code Online (Sandbox Code Playgroud)
ui_mydialog.h
public:
QPushButton *startButton;
QPushButton *stopButton;
...
void setupUi(QDialog *MyDialog)
{
... // some layout stuff here
startButton = new QPushButton(MyDialog);
startButton->setObjectName(QStringLiteral("startButton"));
QSizePolicy sizePolicy(QSizePolicy::Minimum, QSizePolicy::Minimum);
sizePolicy.setHorizontalStretch(0);
sizePolicy.setVerticalStretch(0);
sizePolicy.setHeightForWidth(startButton->sizePolicy().hasHeightForWidth());
startButton->setSizePolicy(sizePolicy);
startButton->setDefault(true);
... // later
QWidget::setTabOrder(startButton, stopButton);
}
void retranslateUi(QDialog *MyDialog) …Run Code Online (Sandbox Code Playgroud)