精华内容
下载资源
问答
  • mainToolBar QToolBar QAction 菜单中输入内容,增加列表,...点击mainToolBar 正在属性找到toolButtonStyle 选更改选项设置文字显示的位置(默认是仅显示按钮,没有文字) 当然也有代码的方式显示文字,但是.

    mainToolBar QToolBar QAction

    菜单栏中输入内容,增加列表,在下栏Actio Editor中会出现一个actionfind

    点击右键编辑可以添加图标

    拖拽到细小的:(mainToolBar)上,同理可以创建其他的菜单按钮

    关于功能,和其他按钮一样 ,在action上右键转到槽编辑操作函数

    点击mainToolBar 正在属性栏找到toolButtonStyle 选更改选项设置文字显示的位置(默认是仅显示按钮,没有文字)

    当然也有代码的方式显示文字,但是使用代码,只有在运行后才能看到,在ui界面是无法看到文字,所以这对ui的设计和整体布局不太友好,所以个人还是推荐使用界面操作的方式配置能实时的看到。

     

    展开全文
  • QT工具栏显示图标

    2020-11-13 09:38:02
    Question:创建的Action拖到工具栏处,运行时不显示图标。 在添加资源文件时,存储的图标和图片文件,要将图标等原始文件放在项目的子目录下,不要嵌套多个文件夹。

    Question:创建的Action拖到工具栏处,运行时不显示图标。

    在添加资源文件时,存储的图标和图片文件,要将图标等原始文件放在项目的子目录下,不要嵌套多个文件夹。

     

     

    展开全文
  • Qt菜单栏、工具栏、状态栏介绍及工具栏action的动态增删显示实现方式 版本说明 版本 作者 日期 备注 0.1 loon 2018.11.12 初稿 目录 文章目录Qt菜单栏、工具栏、状态栏介绍及工具...

    Qt菜单栏、工具栏、状态栏介绍及工具栏action的动态增删显示实现方式


    版本说明

    版本作者日期备注
    0.1loon2018.11.12初稿

    目录

    一、需求和目的

    基本上所有的编辑器都支持工具栏快捷功能的动态增删,即我们在菜单栏上打钩就可以在工具栏上看到相应功能的快捷按钮,取消打钩则在工具栏上就移除了该功能的快捷按钮,那么Qt如何实现这个功能呐,我们本次总结的目的就是记录我解决这个问题的思路和方法。

    二、菜单栏、工具栏、状态栏

    对于这三个概念先做一个简单的了解,我们直接上一个source insight的图,来说一下什么是菜单栏、工具栏和状态栏:

    在这里插入图片描述

    最上面的可以下拉的菜单栏,然后是快捷点击的工具栏,最下面的是显示某些状态信息的状态栏。菜单栏的功能一般来说就是最全的,工具栏的内容可以在菜单栏中进行设置以在有限的位置显示出我们需要的常用的一些功能的快捷点击按钮(此外,还有快捷键,这里就不展开了)。

    三、Qt菜单栏、工具栏和状态栏的基本操作说明

    打开Qt助手,分别搜索menuBar、toolBar、statusBar,找到对应的QMenuBar、QToolBar、QStatusBar的类说明进行了解。基础的应用了解一下其方法和属性(公有的、私有的、受保护的都了解一下)、槽、信号等,再了解一些如何使用的 详细描述以及一些注意事项就可以很快上手了。

    在这里插入图片描述

    1、QMenuBar:

    见名知意一下,使用的时候再具体去看一下,基本没什么问题,下面的是公有方法,还有一些其他的内容在助手上都很详细,根据需要去了解一下即可。

    函数说明
    QMenuBar(QWidget *parent = Q_NULLPTR)
    ~QMenuBar()
    QAction *actionAt(const QPoint &pt) const
    QRect actionGeometry(QAction *act) const
    QAction *activeAction() const
    QAction *addAction(const QString &text)
    QAction *addAction(const QString &text, const QObject *receiver, const char *member)
    QAction *addMenu(QMenu *menu)
    QMenu *addMenu(const QString &title)
    QMenu *addMenu(const QIcon &icon, const QString &title)
    QAction *addSeparator()
    void clear()
    QWidget *cornerWidget(Qt::Corner corner = Qt::TopRightCorner) const
    QAction *defaultAction() const
    QAction *insertMenu(QAction *before, QMenu *menu)
    QAction *insertSeparator(QAction *before)
    bool isDefaultUp() const
    bool isNativeMenuBar() const
    void setActiveAction(QAction *act)
    void setCornerWidget(QWidget *widget, Qt::Corner corner = Qt::TopRightCorner)
    void setDefaultAction(QAction *act)
    void setDefaultUp(bool )
    void setNativeMenuBar(bool nativeMenuBar)
    NSMenu *toNSMenu()

    详细描述:

    QMenuBar类提供了一个水平菜单栏。

    菜单栏由下拉菜单项列表组成。使用addMenu()添加菜单项。例如,假设menubar是一个指向QMenuBar的指针,fileMenu是一个指向QMenu的指针,那么下面的语句将菜单插入到菜单栏中:

    menuBar->addMenu(fileMenu);
    

    菜单项文本中的&号设置Alt+F作为此菜单的快捷方式。(你可以使用“&&”在菜单栏中得到一个真正的&符号。)

    没有必要设置菜单栏。它自动将自己的几何图形设置到父小部件的顶部,并在父小部件调整大小时适当地修改它。

    使用

    在大多数主窗口样式应用程序中,您将使用QMainWindow中提供的menuBar()函数,将qmenu添加到菜单栏中,并将QActions添加到弹出菜单中。

    示例(来自菜单示例):

    fileMenu = menuBar()->addMenu(tr(“文件”));
    fileMenu->addAction(newAct);
    

    可以使用removeAction()方法删除菜单项。

    可以使用QWidgetAction类的实例将小部件添加到菜单中。然后,可以按照通常的方式将这些操作插入到菜单中;有关详细信息,请参阅QMenu文档。

    平台依赖的外观和感觉

    不同的平台对菜单栏的外观和用户交互时的行为有不同的要求。例如,Windows系统经常被配置为只在按下Alt键时才显示菜单栏中显示键盘快捷键的下划线字符助记符。

    其它还有一些在MAC和Win CE上使用的一些说明,这里就不多说了。

    2、QToolBar

    详细描述:

    QToolBar类提供一个包含一组控件的可移动面板。

    使用addAction()或insertAction()通过添加操作添加工具栏按钮。可以使用addSeparator()或insertSeparator()分隔按钮组。如果工具栏按钮不合适,可以使用addWidget()或insertWidget()插入小部件。合适的小部件的例子有QSpinBox、QDoubleSpinBox和QComboBox。当按下工具栏按钮时,它会发出actiontrigger()信号。

    工具栏可以固定在特定区域(例如窗口顶部),也可以在工具栏区域之间移动;请参阅setMovable()、isMovable()、allowedAreas()和isAreaAllowed()。

    当工具栏的大小调整到太小而不能显示它所包含的所有项目时,扩展按钮将作为工具栏中的最后一个项目出现。按下扩展按钮将弹出一个菜单,其中包含当前不在工具栏中的项目。

    如果QToolBar不是QMainWindow的子窗口,它就失去了使用addWidget()在工具栏中添加小部件填充扩展弹出框的能力。请使用继承QWidgetAction并实现QWidgetAction::createWidget()创建的小部件操作。

    请参阅QToolButton、QMenu、QAction和应用程序示例。

    可以看到工具栏还可以插入QSpinBox、QDoubleSpinBox和QComboBox小部件呐,感兴趣的可以试试,此外,点击工具栏按钮时发出的是actiontrigger信号。

    3、QStatusBar

    QStatusBar类提供了一个适合显示状态信息的水平条。

    每个状态指示器分为以下三类:

    • Temporary(暂时的)-暂时占据状态栏的大部分。例如,用于解释工具提示文本或菜单项。
    • Normal(一般的) -占据状态栏的一部分,可能被临时消息隐藏。例如,用于在字处理器中显示页和行号。
    • Permanent(永久的)-永远不会隐藏。例如,一些应用程序将大写锁定指示器放在状态栏中,用于重要的模式指示。

    QStatusBar可以显示所有三种类型的指示器。

    通常,状态栏功能的请求与QMainWindow对象相关。QMainWindow提供了一个主应用程序窗口,其中包含一个菜单栏、工具栏、停靠小部件和一个围绕大型中央小部件的状态栏。可以使用QMainWindow::statusBar()函数检索状态栏,并使用QMainWindow::setStatusBar()函数替换状态栏。

    使用showMessage()显示临时消息:

    void MainWindow::createStatusBar()
    {
    	statusBar()->showMessage(tr(“准备好”));
    }
    

    要删除临时消息,请使用clearMessage()槽函数,或在调用showMessage()时设置时间限制。例如:

    void MainWindow::print ()
    {
    #ifndef QT_NO_PRINTDIALOG
    	QTextDocument *document = textEdit->document();
    	QPrinter printer;
    
    	QPrintDialog dlg(&printer, this);
    	if (dlg.exec() != QDialog::Accepted){
    		return;
    	}
    
    	document->print(&printer);
    	statusBar()->showMessage(tr(“Reday”),2000);
    # endif
    }
    

    使用currentMessage()函数来检索当前显示的临时消息。QStatusBar类还提供了messageChanged()信号,当临时状态消息发生更改时发出该信号。

    通过创建一个小部件(QLabel、QProgressBar甚至QToolButton),然后使用addWidget()或addPermanentWidget()函数将其添加到状态栏中,可以显示普通消息和永久消息。使用removeWidget()函数从状态栏删除此类消息。

    statusBar()->addWidget(new MyReadWriteIndication);
    

    默认情况下,QStatusBar在右下角提供一个QSizeGrip。您可以使用setSizeGripEnabled()函数禁用它。使用isSizeGripEnabled()函数确定大小手柄的当前状态。

    参见QMainWindow, QStatusTipEvent, GUI设计手册:状态栏和应用实例。

    由此可以看出状态栏一般都分成三份呐(暂时、一般、永久)。此外,还可以插入小部件别忘记用。

    四、工具栏功能在菜单栏进行动态配置的实现思路

    1、思路

    根据上面的描述,我们可以看到一般就是用addaction和insertaction添加action的,一般我们用Qt设计师设计完后action都已经有了,所以addaction不是很好用了,我这里是用insertaction,但是insert要指定放在哪个action前面,这就麻烦了,我们动态添加的时候不知道前一个action是什么,所以这里就用到了一个小技巧: 在最后设置占位action(占位的action名字设置为|即可),那么我们insertaction时就插入到对应的占位action前面就可以了,即设置空白的action进行占位。 移除就不用多说了,直接removeaction。

    使action可选的方式就是设置action为checked即可选的,然后就可以设置enabled来(true、false)显示√了。

    定义工具栏的显示与否这里就不说了,很简单,使用其自带的槽函数结合一个action按钮就可以了。

    2、结果展示

    这里主要演示工具栏的action动态增删,至于状态栏菜单栏的扩展这里就不演示了(图片大小不能超过5M哈)。

    在这里插入图片描述

    五、最后

    学习如何使用Qt创建菜单栏、工具栏和状态栏很简单,按部就班即可,但是如何灵活的运用这些知识来解决实际问题往往需要一些技巧,这些技巧往往就是我们要总结和回顾的经验。

    展开全文
  • QT工具栏按钮

    千次阅读 2018-10-25 10:21:59
    工具栏按钮: 采用ToolBar直接建立工具栏按钮,一般一排连续的几个按钮可使用一个ToolBar的不同Action进行分配,一个Action对应着一个按钮;若是有两个ToolBar,则之间会有分隔(竖线右侧带点),属于不同的两部分...

    工具栏按钮:

    采用ToolBar直接建立工具栏按钮,一般一排连续的几个按钮可使用一个ToolBar的不同Action进行分配,一个Action对应着一个按钮;若是有两个ToolBar,则之间会有分隔(竖线右侧带点),属于不同的两部分。此外还可以通过toolBar->addSeparator添加分隔符,将不同操作分开。

    按钮的图标可通过Action进行插入,注意图片要先导入资源中,再输入资源的路径进行调用,如:

     

    添加Action时可通过toolBar->addAction的返回值进行新Action的创建,依照addAction的顺序确定了工具栏按钮的左右顺序。最后,通过点击可发出triggered()信号,进而连接槽函数,执行相应操作。

    工具栏菜单:

    采用ToolButton作为外观,通过toolBar->addWidget()添加到工具栏中,菜单部分需要单独建立一个QMenu,进行选项设计以及信号连接,再通过toolButton->setMenu()将菜单添加到按钮中,这样点击按钮之后就可以弹出菜单,弹出延时可通过toolButton->setPopupMode()进行设置。

    QMenu的选项可通过QActionGroup进行设计,QActionGroup每添加(addAction)一个新的Action,菜单中就会添加一个选项;点击菜单中的选项可发出triggered(QAction*)的信号,连接到槽函数中,通过QActionGroup *group = qobject_cast<QActionGroup*>(sender());进行信号的接收,再由group->actions().indexOf(act)(act是传入的QAction*)获取选项的索引(也就是第几项),继而进行自己的操作。

    展开全文
  • Qt Creator使用Qt Quick工具栏使用Qt Quick工具栏预览影像格式化文字预览...“始终显示Qt Quick工具栏”。 拖动工具栏以将其固定到另一个位置。选择以取消固定工具栏并将其移动到其默认位置。要默认固定工具栏,请选择
  • qt 工具栏下加文字

    千次阅读 2020-03-08 20:59:35
    在进行软件界面设计时,用户反应Qt默认的工具栏不是太美观,希望能在工具栏下面加上文字这样比较直观,效果图如下: 去看看qt默认的Action不支持这样的样式,之后想自己定制一下。 ...
  • 在前面学习Qt的时候,我完成了关于界面按钮的创建,以及信号与槽的实际应用,这次来自己用代码实现在一个窗口中建立菜单栏,工具栏以及状态栏 一、建立菜单栏 1.新建工程 按照箭头所指来操作 这里名字随便取 这....
  • Qt默认情况下(Qt版本5.13),工具栏添加Action后,只显示Action的图标,如下图所示 这种界面不方便操作,最好在工具栏添加文字,添加文字方式(在构造函数中添加)为: ui->toolBar->...
  • Qt工具栏/状态栏显示和隐藏

    千次阅读 2020-06-02 15:13:03
    添加工具栏action消息响应 消息响应函数定义(信号槽定义) private slots: void on_actionStatusBar_toggled(bool arg1); void on_actionToolBar_toggled(bool arg1); 消息响应函数实体 void MainWindow::on_...
  • QT界面中工具栏图标无法显示

    千次阅读 2015-04-17 10:25:30
    用CMAKE管理QT工程, 运行exe文件,界面中工具栏图标无法显示,其中图标文件放在qrc文件中。
  • QT 侧边工具栏

    2021-07-09 16:17:49
    工具栏本身可以直接设置允许的显示区域,但是初始化显示都是在顶部,没办法直接显示在想要的位置 当时想了很多办法,也在网上看了,包括在QDockWidget里面添加工具栏一样,都不是太好,最后看QT帮助手册,找到一个...
  • QT工具栏图标设置

    2013-01-01 21:08:00
    1、定义一个QAction对象,设置显示图标和文字; 2、定义一个QToolBar对象;...5、设置工具栏显示方式。 QMainWindow *w = new QMainWindow; QAction *saveAct = newQAction(QIcon(":save.png...
  • 有些时候我们为了合理的布局,会在Tab widget工具栏的右侧空白部分显示一些信息,但当我们拖动label进行布局时发现Tab widget的工具栏的右侧空白部分是禁止放label的。 我们可以使用CornerWidget来让信息显示在该...
  • 工具栏控件 工具栏添加下拉菜单 由于无法通过QAction的方式,添加按钮图标在工具栏,下拉菜单需要通过代码的方式填加到工具栏上面。 QComboBox *m = new QComboBox(this); m->addItem(tr("red")); m->...
  • 在构造函数内添加 ui->mainToolBar->setToolButtonStyle(Qt::ToolButtonTextUnderIcon); 函数有多个参数,可根据不同需求选择。
  • 菜单栏主要为QMenu类和QMenuBar类,工具栏为QToolBar类,动作主要为QAction类 菜单栏和工具栏上添加动作,在使用动作连接信号与槽,即可实现菜单栏与工具栏功能。菜单栏中还可以添加菜单 QIcon icon = new QIcon...
  • Linux kubuntu x64系统下发现QT5.12在设计视图下编辑菜单和工具栏显示图标,但是编译运行后发现菜单和工具栏不显示图标,如下图: 我的解决办法是: 1.在QT项目中,菜单和工具栏图标一定要添加到项目资源文件中(在...
  • 本篇博客介绍如何在Qt窗体上添加工具栏。 用QtCreator新建一个GUI项目,继承于QMainWindow, 只有QMainWindow有工具栏。例如我实现的效果如下: 工具栏按钮需要图片,可以新建一个qrc文件,把图片信息写进去,...
  • QT菜单栏,工具栏

    千次阅读 2011-03-02 13:24:00
    在这一节里面,我们要为我们的框架添加菜单和工具条。 就像Swing里面的Action一样,Qt里面也有一个类似的类,叫做QAction。顾名思义,QAction类保存有关于这个动作,也就是action的信息,比如它的
  • 在GUI应用程序中,如何设计美观、大方、实用的界面非常重要,我们经常会发现在很多应用程序中,在工具栏中嵌入了单行文本编辑器、下拉列表、动画等等可视部件,那么Qt中实现这些功能可行吗?答案是可定的,而且操作...
  • Qt 通过“动作(Action)”的概念简化了有关菜单和工具栏的编程。一个动作(action) 是一个可以添加到任意数量的菜单和工具栏上的项。创建菜单和工具栏主要包括以下步骤:  创建并且设置动作;  创建菜单并且把动作...
  • 编译环境:vs2008,qt4.8.2 效果,显示一个带菜单栏,工具栏的主窗口,以及添加菜单栏触发事件
  • QT 菜单栏 工具栏 Qaction的创建

    千次阅读 2017-07-10 11:51:13
     应用程序可以通过菜单,工具栏按钮以及键盘快捷键来调用通用的命令。由于用户期望每个命令都能以相同的方式执行,而不管命令所使用的用户界面, 这个时候使用action来表示这些命令就显得十分有用。  Action

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 10,008
精华内容 4,003
关键字:

qt工具栏显示