标签: qtoolbar

有没有办法阻止工具栏的隐藏操作?

在Qt中,如果我右键单击工具栏,将显示允许我隐藏工具栏的菜单.我需要禁用此功能,因为我不希望工具栏可以隐藏.有没有办法做到这一点?

c++ qt qtoolbar

19
推荐指数
5
解决办法
6224
查看次数

有没有办法使用Qt Designer定义带有按钮和弹出菜单的QToolbar?

我想在Qt中有一个包含QActions或QToolbarButtons的工具栏,它们附有弹出菜单.通过创建QMenu,将其添加到QToolbarButton然后将其添加到QToolbar,我已经能够在代码中完美地完成此操作.我的问题是,这应该可以在设计师中完全完成.

这是我通过代码完成的工作,我想在qt designer中定义按钮和菜单:
http://img402.imageshack.us/img402/7669/exmaple.png

我们想要用qt设计器做的是将代码与接口分开.例如,这意味着一个人可以设计表单的外观和组件,然后程序员可以采用它并编写其背后的功能.如果工具栏和菜单必须由程序员设计,我们无法非常有效地完成此任务.

对于许多应用程序来说,这似乎是一个相当常见的要求,我无法看到Qt如何强制在代码而不是设计器中完成此操作.

如果有人对如何做到有任何想法,也许我在Qt中遗漏了一些东西?

qt designer button qtoolbar qmenu

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

制作QToolBar的"可检查"QToolButtons的最佳方法,其中一次只能检查其中一个按钮?

我想制作一个带有一些动作的QToolBar,每个动作都是"可检查的"(也就是说,我在创建它之后对每个动作调用setCheckable(true),这使得按钮在点击后处于关闭状态).

我可以想到"取消选中"其他按钮的唯一方法是挂钩每个按钮的触发信号,并在选中给定按钮时取消选中其他按钮.

有没有更好的办法?

c++ qt qt4 qtoolbar

9
推荐指数
1
解决办法
5614
查看次数

QToolBar 背景颜色仅适用于操作

我正在尝试使用 stylesheet 中的以下内容在 Qt 设计器中设置 QToolBar 的背景颜色background : rgb(30, 30, 30)。出于某种原因,背景颜色仅适用于动作的背景,如图像中所示。如何更改整个工具栏的颜色?

在此处输入图片说明

编辑。

即使我改变了整个窗口的背景颜色,工具栏的区域也不受影响:

在此处输入图片说明

这是一个空的默认 Qt 小部件应用程序,其中我只添加了一个 QToolBar 和一个 QAction 以及我的 QMainWindow 的样式表

background : red;
QToolBar { background : red }
QToolButton {background : red}
Run Code Online (Sandbox Code Playgroud)

这是预期的行为还是 linux 上的 qt 错误?

编辑。

我在使用 Qt 4.8 和 Qt 5.4.2 的 Xubuntu 14.04 上尝试了这段代码。这似乎是 Qt 上的一个错误。请参阅下面我自己的答案。

c++ qt background-color qtoolbar

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

如何将 QWidget 对齐到 QToolBar 的右侧?

我有一些 QWidget (QLineEdit),我想将它对齐到 QToolbar 的右侧。

有什么简单的方法可以做到吗?

c++ qt qtoolbar

6
推荐指数
1
解决办法
2234
查看次数

恢复QMainWindow的浮动工具栏时出现问题

在浮动工具栏中恢复具有QCombobox的QMainWindow状态时,我看到一个问题。恢复浮动工具栏后,我的QCombobox无法获得焦点,直到我单击工具栏手柄并将其移动。以下是显示问题的gif,使用QT 5.13。 在此处输入图片说明

文件float_toolbar.pro

QT       += core gui

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

TARGET = floating_toolbar
TEMPLATE = app


DEFINES += QT_DEPRECATED_WARNINGS

 #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000    # disables all the APIs deprecated before Qt 6.0.0

CONFIG += c++11

SOURCES += \
        main.cpp \
        mainwindow.cpp

HEADERS += \
        mainwindow.h

# Default rules for deployment.
qnx: target.path = /tmp/$${TARGET}/bin
else: unix:!android: target.path = /opt/$${TARGET}/bin
!isEmpty(target.path): INSTALLS += target
Run Code Online (Sandbox Code Playgroud)

档案:main.cpp

#include "mainwindow.h"
#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow w; …
Run Code Online (Sandbox Code Playgroud)

linux qt qcombobox qtoolbar qt5

6
推荐指数
1
解决办法
180
查看次数

在QT中在一个QToolButton之间切换

我希望从一个切换QToolButton到另一个QToolBar.我已经习惯了QStackedWidget,它们从一个移动widget到另一个太简单了,但在这里我无法通过使用来获得移动方式keyReleaseEvent.

mywindow::mywindow() : QMainWindow()
{   
    widget = new QWidget();
    setCentralWidget(widget);

    tool = new QToolBar();
    vertical = new QVBoxLayout();
    button1 = new QToolButton();
    connect( button1, SIGNAL(clicked()), this, SLOT(fileNew()) );

    button2 = new QToolButton();
    button3 = new QToolButton();

    button1->setIcon(QIcon("download.jpg"));
    button1->setGeometry(0,0,100,200);
    button2->setIcon(QIcon("images.jpg"));
    button3->setIcon(QIcon("settings-icon.jpg"));

    //stack1->addWidget(button1);
    //stack1->addWidget(button2);
    //stack1->addWidget(button3);

    tool->addWidget(button1);
    tool->addWidget(button2);
    tool->addWidget(button3);
    //tool->addWidget(stack1);

    vertical->addWidget(tool);
    widget->setLayout(vertical);
}

void mywindow::keyReleaseEvent(KeyEvent *event)
{
    switch(event->key())
    {
        case:Qt::Key_Left:


    }
}
Run Code Online (Sandbox Code Playgroud)

c++ qt qtgui qtoolbar qmainwindow

5
推荐指数
1
解决办法
560
查看次数

如何更改工具栏的默认位置?

我正在使用 PyQt5、QMainWindow,我想将工具栏的默认位置更改为右侧。我该怎么做?

用户可以使用鼠标将工具栏移动到窗口的边缘,但是如何使用程序来做到这一点呢?

def initUI(self):
    self.toolbar = self.addToolBar('Example')
Run Code Online (Sandbox Code Playgroud)

python pyqt qtoolbar qmainwindow pyqt5

5
推荐指数
1
解决办法
2429
查看次数

在 QToolBar 的工具提示中显示快捷方式

我已经QActions添加到QToolBarusing addAction().

我希望工具栏按钮工具提示显示快捷方式。例如复制(Ctrl+C)。当然,我可以静态设置

action->setTooltip(QString("%1 (%2)").arg(action.toolTip(), action->shortcut().toString(QKeySequence::NativeText)));
Run Code Online (Sandbox Code Playgroud)

然而,这非常麻烦,因为有很多操作,并且用户可以修改快捷方式,因此我必须跟踪并相应更新。如果我可以通过类似于http://doc.qt.io/qt-5/qtwidgets-widgets-tooltips-example.htmlQToolBar的子类来简单地修改工具提示行为,那就更好了。QToolBar

不幸的是,事情没那么简单。工具提示不是由其本身生成的QToolBar,而是显然是由QToolButton使用时在内部创建的addAction()。所以理想情况下我会注入我自己的QToolButton. 但这似乎是不可能的,因为工具按钮的实际实例化是在我无法访问的私有 QToolBarLayout 内完成的。

有什么想法如何解决这个问题吗?

qt tooltip qtoolbar

4
推荐指数
1
解决办法
1461
查看次数

如何调整或缩放 QIcon?

我正在尝试扩大 QIcon,但它不起作用。

class Example(QMainWindow):

    def __init__(self):
        super().__init__()
        self.initUI()

    def initUI(self):
        exitIcon = QPixmap('./icons/outline-exit_to_app-24px.svg')
        scaledExitIcon = exitIcon.scaled(QSize(1024, 1024))
        exitActIcon = QIcon(scaledExitIcon)
        exitAct = QAction(exitActIcon, 'Exit', self)
        exitAct.setShortcut('Ctrl+Q')
        exitAct.triggered.connect(qApp.quit)

        self.toolbar = self.addToolBar('Exit')
        self.toolbar.addAction(exitAct)

        self.setWindowTitle('Toolbar')
        self.show()
Run Code Online (Sandbox Code Playgroud)

当我运行应用程序时,它似乎不起作用。我试过用 QPixmap 和直接用 QIcon 加载图标,但无论如何它都是一样的小尺寸。

我在这里做错了什么?

python pyqt qtoolbar python-3.x pyqt5

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