精华内容
下载资源
问答
  • QT按钮下拉菜单

    千次阅读 2019-05-20 22:53:20
    QPushButton *statusputton; QMenu *statusmenu; void Dialog::creatpushbotton() { statusputton=new QPushButton(); statusmenu =new QMenu();... QAction *online=new QAction(statusmenu);... QAction *chatme=n...
    QPushButton *statusputton;
    QMenu *statusmenu;
    
    void Dialog::creatpushbotton()
    {
    	statusputton=new QPushButton();
    	statusmenu =new QMenu();
    	QAction *online=new QAction(statusmenu);
    	QAction *chatme=new QAction(statusmenu);
    	QAction *busy=new QAction(statusmenu);
    	QAction *leave=new QAction(statusmenu);
    	QAction *steath=new QAction(statusmenu);
    	QAction *disturb=new QAction(statusmenu);
    	 
    	//设置
    	online->setIcon(icon:/img/online.png);
    	chatme->setIcon(icon:/img/chatme.png);
    	busy->setIcon(icon:/img/busy.png);
    	leave->setIcon(icon:/img/leave.png);
    	steath->setIcon(icon:/img/steath.png);
    	disturb->setIcon(icon:/img/disturb.png);
    	 
    	statusmenu->addAction(online);
    	statusmenu->addAction(chatme);
    	statusmenu->addAction(busy);
    	statusmenu->addAction(leave);
    	statusmenu->addAction(steath);
    	statusmenu->addAction(disturb);
    	 
    	statusputton->setMenu(statusmenu);
    	 
    	online->setText(“在线”);
    	chatme->setText(“Q我吧”);
    	busy->setText(“忙碌”);
    	leave->setText(“离开”);
    	steath->setText(“隐身”);
    	disturb->setText(“请勿打扰”);
     
    	statusputton->setStyleeSheet("QPushButton::menu-indicator{image:None;}");
    
    	connecr(statusmenu,SIGNAL(),this,SLOT(setstatus(QAction *)));
    }
     
    void Dialog::setstatus(QAction *action)
    {
    	statusputton->setIcon(action->icon());
    }

     

    展开全文
  • 介绍:可通过QWidgetAction,给QToolButton设置Action达到目的,无需专门去自定义一个控件,在使用时注意给QToolButton设置setToolButtonStyle(Qt::ToolButtonTextBesideIcon)和setPopupMode(QToolButton::...

     

    介绍:可通过QWidgetAction,给QToolButton设置Action达到目的,无需专门去自定义一个控件,在使用时注意给QToolButton设置setToolButtonStyle(Qt::ToolButtonTextBesideIcon)setPopupMode(QToolButton::InstantPopup)两个属性。

     

    FS_Popup_Widget.h

    #pragma once
    
    #include <QToolButton>
    #include <QWidgetAction>
    #include <QPointer>
    
    class QMenu;
    
    class FS_PopupWidget : public QToolButton
    {
    	Q_OBJECT
    
    public:
    	FS_PopupWidget(QWidget *parent = Q_NULLPTR);
    	~FS_PopupWidget();
    
    private:
    	QPointer<QWidgetAction> m_popup_widget;
    	QPointer<QMenu> m_menu;
    };
    

     

    FS_Popup_Widget.cpp

    #include "FS_PopupWidget.h"
    
    #include <QMenu>
    #include <QListWidget>
    #include <QListWidgetItem>
    #include <QHBoxLayout>
    #include <QVBoxLayout>
    
    #pragma execution_character_set("utf-8")
    
    FS_PopupWidget::FS_PopupWidget(QWidget *parent)
    	: QToolButton(parent)
    {
    	// set ToolButton attribute
    	this->setPopupMode(QToolButton::InstantPopup);
    	this->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);
    	this->setIcon(QIcon(":/images/error.png"));
    	this->setText("弹出");
    
    	m_popup_widget = new QWidgetAction(this);
    	m_menu = new QMenu(this);
    
    	QPointer<QListWidget> lwd = new QListWidget;
    	lwd->setMinimumSize(QSize(400, 400));
    	lwd->setViewMode(QListView::IconMode);
    	lwd->setIconSize(QSize(80, 80));
    	for (int i = 0; i < 10; i++)
    	{
    		QListWidgetItem* item = new QListWidgetItem(QIcon(":/images/warning.png"), "Test");
    		lwd->addItem(item);
    	}
    
    	QPointer<QVBoxLayout> layout_main = new QVBoxLayout;
    	layout_main->addWidget(lwd);
    	QPointer<QWidget> default_widget = new QWidget;
    	default_widget->setLayout(layout_main);
    	m_popup_widget->setDefaultWidget(default_widget);
    
    	m_menu->addAction(m_popup_widget);
    	this->setMenu(m_menu);
    }
    
    FS_PopupWidget::~FS_PopupWidget()
    {
    }
    

     

    展开全文
  • I am writing a popup menu for a Qt push button widget. Whenever the push button is clicked, a menu pops up (below the push button).The popup menu is left-sided below by default.Are there any ways to m...

    I am writing a popup menu for a Qt push button widget. Whenever the push button is clicked, a menu pops up (below the push button).

    The popup menu is left-sided below by default.

    Are there any ways to make the popup menu to pop up on the right side below the push button?

    There is no set position function, so I wonder if there is some sophisticated way of doing it?

    Here is some code (for popup menu):

    QMenu *menuMode = new QMenu(this);

    min = menu ->addAction("In");

    mout = menu ->addAction("out");

    ui->pushButtonMode->setMenu(menuMode); //I am writing in MainWindow, that's there is ui

    解决方案

    This can be done by subclassing QMenu and moving the popup menu where you want to have it in showEvent:

    popupmenu.h

    #ifndef POPUPMENU_H

    #define POPUPMENU_H

    #include

    class QPushButton;

    class QWidget;

    class PopupMenu : public QMenu

    {

    Q_OBJECT

    public:

    explicit PopupMenu(QPushButton* button, QWidget* parent = 0);

    void showEvent(QShowEvent* event);

    private:

    QPushButton* b;

    };

    #endif // POPUPMENU_H

    popupmenu.cpp

    #include "popupmenu.h"

    #include

    PopupMenu::PopupMenu(QPushButton* button, QWidget* parent) : QMenu(parent), b(button)

    {

    }

    void PopupMenu::showEvent(QShowEvent* event)

    {

    QPoint p = this->pos();

    QRect geo = b->geometry();

    this->move(p.x()+geo.width()-this->geometry().width(), p.y());

    }

    mainwindow.cpp

    ...

    PopupMenu* menu = new PopupMenu(ui->pushButton, this);

    ...

    ui->pushButton->setMenu(menu);

    It looks like this:

    5ff6424671b8320a123b220a8dab6fd3.png

    展开全文
  • 一般而言,当改变QCombox时,很多效果都会出来,但是,针对下拉按钮和下拉图标的自定义效果需要通过QComboBox::drop-down和QComboBox::down-arrow来定义. 下面我们将展示去除下拉按钮的下拉效果. 1 QComboBox{ 2 ...

    使用QSS自定义控件界面时,QT中控件QCombobox含有两个子控件drop-down和down-arrow.一般而言,当改变QCombox时,很多效果都会出来,但是,针对下拉按钮和下拉图标的自定义效果需要通过QComboBox::drop-down和QComboBox::down-arrow来定义.

    下面我们将展示去除下拉按钮的下拉效果.

    1 QComboBox{
    2     background:white;
    3 }
    4 QComboBox::drop-down {
    5     border:none;
    6 }
    7 QComboBox::down-arrow {
    8      image: url(:/ui/1downarrow.png);
    9 }
    QT QCombobox的qss代码

    这个代码就实现了去除下拉按钮,保留了下拉图标的方案.

     1 #include "mainwindow.h"
     2 #include "ui_mainwindow.h"
     3 
     4 
     5 #include <QFile>
     6 #include <QTextStream>
     7 #include <QDebug>
     8 MainWindow::MainWindow(QWidget *parent) :
     9     QMainWindow(parent),
    10     ui(new Ui::MainWindow)
    11 {
    12     ui->setupUi(this);
    13     QFile myfile(":/ui/ui.qss");
    14 
    15     myfile.open(QIODevice::ReadOnly|QIODevice::Text);
    16     QTextStream in(&myfile);
    17     QString str = in.readAll();
    18     this->setStyleSheet(str);
    19 
    20 }
    21 
    22 MainWindow::~MainWindow()
    23 {
    24     delete ui;
    25 }

     

    转载于:https://www.cnblogs.com/zhangdewang/p/7718577.html

    展开全文
  • QT中复合按钮下拉菜单的实现

    万次阅读 2014-04-15 13:51:52
    QT 实现类似于Foxmail工具栏中的按钮,复合功能菜单按钮
  • 写了个按钮菜单,出来效果是这样的:   但实际想要的是这样的:   具体怎么实现呢?下面来写个测试程序试一下。 menuButton = new QPushButton(this); createMenu(); menuButton->setMenu(menu); ...
  • qpushbutton 添加点击菜单后是与按钮左边界对齐的,本程序将其右对齐并去掉下拉箭头。
  • Qt中点击按钮弹出菜单,这功能很好写,调用QPushButton的setMenu方法即可,但是,这种点击按钮弹出菜单的效果是很不爽的,需要两次点击才弹出菜单,第一次点击按钮右侧出现箭头,第二次点击才弹出菜单,而且菜单...
  • if(QStyle::SC_ComboBoxArrow == this->style()->hitTestComplexControl(QStyle::CC_ComboBox, &optCombo, event->pos(), this)) { 源码获取下拉窗口的位置 void QDateTimeEditPrivate::positionCalendarPopup() { ...
  • 通过点击Qt中的pushbutton,可以弹出菜单,菜单选项是QAction,可以连接槽完成相应功能。Qt工程是基于Qt5.10.1 32位,Qt Creator 4.5.1(Community)
  • QT QMenu下拉菜单实现

    千次阅读 2019-08-05 16:49:49
    QT QMenu下拉菜单实现QT QMenu下拉菜单实现样式效果代码 QT QMenu下拉菜单实现 ...类似QT下拉菜单效果 代码 QPushButton *m_pSetButton = new QPushButton(this); m_pSetButton->setIcon(QIcon(":/resource/mai...
  • 假如我一定要,我就一定能*******************上一篇文章说到了如何启动没player,那么今天接下来就说一说如何给按钮和label添加图片1、我们要给按钮或者label等添加图片,我们首先的制作一个图片资源 点到项目->...
  • QT ComboBox 下拉对话框

    万次阅读 多人点赞 2018-08-02 14:13:32
    Combo Box是Qt下拉菜单的控件。 二、ui界面设计 打开新建项目中的界面文件(**.ui) 向窗口中拖入一个Combo Box控件,双击Combo Box对象,添加下拉菜单的选项。 可以在属性编辑栏,编辑对象的属性。   三、...
  • toolButton->setToolButtonStyle( Qt::ToolButtonTextUnderIcon); toolButton->setPopupMode(QToolButton::InstantPopup); // 创建QMenu QMenu *menu = new QMenu(); menu->addAction(QApplication::style()->...
  • QT点击按钮实现按钮名的改变

    千次阅读 2015-03-16 00:08:59
    利用QT的信号和槽机制实现按钮文字的改变,选择按钮的clicked()信号,将它和新建的槽isClicked()连接。以下是具体的实现: dialog.h #ifndef DIALOG_H #define DIALOG_H #include namespace Ui { class Dialog...
  • QtCreator 按钮部件

    千次阅读 2014-07-16 00:59:49
    设置快捷键呢“&字母”,setIcon为按钮添加图标,setMenu为按钮添加下拉菜单 ui -> bt1 ->setText( QString ( "&nihao" )); ui -> bt2 ->setText( QString ( "帮助(&H)" )); ui -> bt2 ->setIcon( ...
  • 问:QComboBox使用QSS无法修改下拉按钮的宽度 ComboBox::drop-down { width: 200px; } 使用上面代码修改下拉按钮的宽度不起作用 答:需要给QComboBox加上边框,否则不接受下拉按钮的宽度 QComboBox { border: 1px...
  • qt进行按钮贴图

    千次阅读 2018-01-17 11:36:34
    1.按钮贴图,直接   pb-&gt;setstylesheet("QPushButton{border-image:url(/home/.....png) 5 5 5 5}");//自动适应图片,设置上右下左的边距   这里就有border-image和background-image之间的...
  • QT编程之简单的按钮下拉菜单

    万次阅读 2017-07-01 20:42:08
    不太喜欢说太多,代码贴上
  • mybtn->setStyleSheet("QPushButton::menu-indicator{image:none}");
  • Vs环境下QT按钮添加图标

    千次阅读 2018-05-24 15:31:32
    博主是一个qt小白,因为项目需求,一点一点摸索,记下这些也是为了怕自己忘记。首先要添加资源文件,把下载好的图标icon文件夹放在工程文件下。双击user.qrc单击Add,选择Add Prefix修改Prefix名为 /File ;再选择...
  • QT 创建下拉菜单

    2020-11-13 14:56:06
    给ToolButton创建一个下拉菜单,实现如图所示的效果。 //下拉菜单 QMenu *menuSelection = new QMenu(this); menuSelection->addAction(ui->actSelAll); menuSelection->addAction(ui->...
  • Qt按钮(QToolButton)

    2020-03-13 10:24:00
    QToolButton类让我们可以快速地实现命令和选项按钮,它通常用在QToolBar中。 相比于普通的命令按钮(QPushButton),工具按钮通常不显示文本,只显示图标。 工具按钮通常是在QToolBar::addAction方法被调用的时候被...
  • 本篇介绍使用qt设计师进行GUI窗口的布局管理,主要包含以下内容:使用Qt设计师布局我们的窗口部件;垂直布局;水平布局;网格布局;使用间隔;使用“伙伴”将label标签与窗口部件进行连接。下面开始!在Qt中,我们...
  • 下拉菜单四个角是圆角,但是背景不透明,给QComboBox包括他的QAbstractItemView设置了qss,不起作用,如下图所示。 而且这个QAbstractItemView的背景颜色是和上面的QComboBox设置的背景颜色一样的。 解决方案: ui...
  • 引言 实现下面这样一个功能,点击界面的添加按钮,增加一行班级和学生的信息,...程序的编译环境:msvc2017 64bit,使用的QtCreate5.13.2。 程序的结构: 创建基于QDialog的项目,然后向其中添加文件,其它不多说,下面
  • [img=https://img-bbs.csdn.net/upload/201511/24/1448348394_924182.png][/img] 是combobox,还是别的,但是combobox跟这个按钮有点不一样。
  • QComboBox 右侧下拉按钮qss样式设置

    万次阅读 2016-03-17 18:12:14
    //下面是下拉按钮部分属性的设置。 QComboBox::drop-down { subcontrol-origin: padding; subcontrol-position: top right; width: 30px; border-left-width: 0px; border-left-color: gray; border-left-...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 3,838
精华内容 1,535
关键字:

qt下拉按钮