Qt之QPushButton

简述

前面章节我们分享过Qt之QAbstractButton,讲解了QAbstractButton的基本用法,本节着重讲解QPushButton。

  • 简述
  • 常用状态
    • 效果
    • 源码
    • QSS
  • 更多参考

关于QPushButton的介绍,主要涉及setAutoDefault、setDefault、setMenu,前两个比较复杂,牵扯源码分析,这里暂不讲解,后面我会专门写一篇文章来说明,下面我们主要介绍按钮如何设置菜单。

常用状态

效果

源码

// 菜单
QMenu *pMenu = new QMenu(this);
pMenu->addAction(QString::fromLocal8Bit("设置"));
pMenu->addAction(QString::fromLocal8Bit("版本检测"));
pMenu->addSeparator();
pMenu->addAction(QString::fromLocal8Bit("关于我们"));
pMenu->addAction(QString::fromLocal8Bit("退出"));

// 按钮
QPushButton *pButton = new QPushButton(this);
pButton->setText(QString::fromLocal8Bit("主菜单"));

// 设置菜单
pButton->setMenu(pMenu);

QSS

默认情况下,按钮的文本居中显示,我们可以通过text-align来设置对齐方式,menu-indicator则使用来设置下拉三角的样式,如果不想显示三角,可以通过image: none来设置。

QPushButton {
        /* 水平居左、垂直居中 */
        text-align: left center;
        padding-left: 3px;
}
QPushButton::menu-indicator {
        subcontrol-position: right center;
        subcontrol-origin: padding;
        padding-right: 3px;
        /* image: none; */
}

更多参考

时间: 2024-10-14 19:44:10

Qt之QPushButton的相关文章

Qt中QPushButton、QTabWidget等部件内容文字换行的解决方法(一定要写在源码里,写在翻译文件里不行,因为\n得不到转义)

最近在做基于Qt的应用项目,其中有一个按钮文字超长,需要换一行显示.从网上找到的建议都是将要显示的内容做成图片,然后将图片设置为该按钮的背景.但是这样做有一个很大的局限性,当需要更改内容文字的时候,需要重新生成图片.这样不仅提高了代码的维护成本,而且方法比较死板.经过本人探索发现,其实只需要设置QPushButton部件的text属性就可以实现换行.例如要显示的文字为: |————————| |         aaa         | |         bbb         | |———

Qt 为QPushButton、QLabel

mybutton.h #ifndef MYBUTTON_H#define MYBUTTON_H#include<QPushButton>#include<QEvent> class MyButton :public QPushButton{Q_OBJECT;public: MyButton(QWidget *parent = 0); ~MyButton();public: void enterEvent(QEvent *e); //鼠标进入事件 void leaveEvent(QE

今天开始学习QT for sysbiam 1

因为自己的诺基亚E6软件更新太不给力了,自己研究一下.主要使用QT,使用塞班的C++,也太难为我了,好了今天,新建按照顺序下去就成了. 做了一滑块的比例尺 代码如下: #include <QtGui/QApplication> #include "qmlapplicationviewer.h" #include <QVBoxLayout> #include <QSpinBox> #include <QSlider> #include &l

qt中按钮贴图

一.QT之QPushButton按钮贴图 二.QT之QToolButton按钮贴图 一.QT之QPushButton按钮贴图具体操作流程   1. Qt Designer中拖入一Tool Button 2. 选择图标的图片放入工程目录下,如放在Resources内 3. 双击工程的Resource Files下的qrc文件,如图 4. 在弹出的窗口中,点击Add Files 5. 将放在工程目录下的图片加入工程,如 6. 再点击保存按钮,完成添加,如 7. 在工程中可以看到添加的图片,如 8.

Qt 模态与非模态

模态是指当子窗口弹出时,焦点始终被强行集中于子窗口,只要子窗口不退出,焦点就不会被释放.非模态正好相反. 从线程角度讲,模态子窗口的线程是阻塞的,父.子窗口各有一个线程,当创建子窗口时,父线程就被子线程阻塞掉:非模态线程不是阻塞型的,父.子线程可以并行运行. 在Qt的模态中,主要用到QDialog的exec()方法: 1 2 3 4 5 6 7 8 9 10 SonDialog dlg(this); int res = dlg.exec(); if (res == QDialog::Accept

PyQt按钮右键菜单

本文原创,转载请注明原地址. 作者:酒醉东坡 原文地址:http://blog.csdn.net/jiuzuidongpo/article/details/46507403 实现效果如下图: 这篇文字主要写了两方面的内容: 第一是按钮的自定义,第二是右键菜单的使用,不仅是按钮的右键菜单,其他一些控件的右键菜单也可以类似创建和使用. 关于右键菜单则是QMenu的一些使用方法有: 样式表的使用: self.setStyleSheet("QMenu{background:purple;}"

Qt4与Qt3的主要不同

1)QT4 中提供了大量新控件,虽然它也保持了旧的控件,并命名为Qt3XXX,但是这样的控件没准在今后的哪个QT版本中就不被支持了,所以还是换吧,控件替换的 工作是巨大的,这些新的控件使用了新的方法.属性.和事件名称,虽然是比以前更规范了,但是对于升级旧代码来说,则增加了大量工作. 2)既然要更新控件,那么你就需要使用QDesigner工具来重新画界面了,OK,重画只是纯体力劳动,好说.界 面画好后,使用uic来根据界面生成代码文件,QT3的uic可以自动生成.h和.cpp文件,假设你在制作一个

利用QPainter绘制各种图形(Shape, Pen 宽带,颜色,风格,Cap,Join,刷子)

利用QPainter绘制各种图形 Qt的二维图形引擎是基于QPainter类的.QPainter既可以绘制几何形状(点.线.矩形.椭圆.弧形.弦形.饼状图.多边形和贝塞尔曲线),也可以绘制像素映射.图像和文字.此外,QPainter还支持一些高级特性,例如反走样(针对文字和图形边缘).像素混合.渐变填充和矢量路径等.QPainter也支持线性变换,例如平移.旋转.错切和缩放. 本例子中利用QPainter类提供的各种draw函数,绘制各种类型的图形,包括对图形的形状.颜色.填充风格等的选择. 1

QT分析之QPushButton的初始化

原文地址:http://blog.163.com/net_worm/blog/static/127702419201001003326522/ 在简单的QT程序的第二行,声明了一个QPushButton的对象.先简单看看其初始化过程. QPushButton的类继承关系为: 1 QPushButton :public QAbstractButton :pubic QWidget :public QObject, public QPaintDevice QPushButton的构造: 1 QPus