标签: qpushbutton

如何使QPushButton可按下输入键?

我想让我的应用笔记本电脑友好.我可以选择到任何地方,但如果我选择QPushButton我不能按Enter,只能用space.
有什么问题?如何使其可压Enter

c++ qt qpushbutton

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

QPushButton和QToolButton之间的区别

我是新来的Qt之间的差异QPushButton,并QToolButton没有那么清晰.

我知道a QToolButton通常用于a QToolBar,它通常只显示一个图标,没有文字,但我不太明白两者之间的主要区别.

它有什么更大的区别吗?我QPushButton应该何时使用,何时使用QToolButton

我想知道这个使用最合适的按钮,我需要执行一些GUI测试,也许它可能是相关的.

c++ qt qpushbutton qtoolbutton

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

如何在Qt5中将动画图标设置为QPushButton?

QPushButton可以有图标,但我需要设置动画图标.这该怎么做?我创建了新的类,QPushButton但是如何将icon替换QIconQMovie

icons animation qt qt5 qpushbutton

17
推荐指数
2
解决办法
9198
查看次数

Qt5 - 将背景颜色设置为QPushButton和QCheckBox

我正在尝试在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"背景颜色"是指按钮周围的区域,而不是按钮面上文本下的颜色.

qt qcheckbox qt5 qpushbutton

15
推荐指数
5
解决办法
6万
查看次数

如何在Qt StyleSheet中只覆盖一个属性:值对

我正在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默认值的QPushButton

但是,如果我设置样式表以使背景按钮颜色为红色,那么在此过程中我似乎失去了所有其他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)

qt qt5 qtstylesheets qpushbutton

15
推荐指数
2
解决办法
6178
查看次数

如何阻止回车键关闭我的QDialog(Qt 4.8.1)

我有QDialog一个QDialogButtonBox." 确定"和" 取消"按钮处于活动状 有时我会根据对话框的状态禁用或隐藏"确定"按钮.看来,无论我做什么,Enter键总是激活OK按钮.我真的不希望这种情况发生.我试过了:

  • 每次显示/隐藏/启用/禁用/无论按钮时,都将default和autoDefault属性设置为false
  • 在OK按钮上安装事件过滤器,以拦截返回,输入和空格的键事件(按下和释放)
  • 将按钮上的焦点策略设置为NoFocus

并且通过上述所有组合,Enter键仍然接受对话框.有没有人知道如何阻止这个?看起来我应该能够阻止这么简单的事情吗?

c++ qt qdialog qpushbutton

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

如何在Qt按钮上设置标签的字体大小?

我正在使用此代码在大小为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>按钮上写的输出.

如何设置字体大小?

qt4 qpushbutton

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

Qt 5将带有参数的插槽分配给QPushButton

我在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)

这是在两个嵌套的循环,这样做ij的明确界定.

我的错误是:

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);但是我应该如何传递这些论点呢?

c++ qt qobject qt5 qpushbutton

8
推荐指数
1
解决办法
5802
查看次数

如何设置QPushButton的选中状态以去除灰点?

我使用的是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).我错过了什么?

css windows qt stylesheet qpushbutton

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

Qt升级后,QPushButton有重复的文本

我有一个使用Qt Creator用C++编写的Android应用程序.

Qt版本升级后(从4.85.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)

c++ qt android text qpushbutton

7
推荐指数
1
解决办法
720
查看次数