标题中带有复选框的QTabWidget
我想知道如何在每个标题旁边的复选框中创建(使用PYQT4)派生QTabWidget?这样: 解决方案 实际上我选择仅选择子类qtabwidget. 该复选框是在创建新标签的创建中添加的,并保存到列表中以使其索引返回. setCheckState/ischecked方法旨在控制其标签索引指定的每个复选框的状态. 最后,捕获" statechanged(int)"信号,并使用指定相关复选框索引的额外参数删除. class CheckableTabWidget(QtGui.QTabWidget): checkBoxList = [] def addTab(self, widget, title): QtGui.QTabWidget.addTab(self, widget, title) checkBox = QtGui.QCheckBox() self.checkBoxList.append(checkBo
14 2023-03-10
编程技术问答社区
如何为QTabWidget(不是为每个标签)添加一个图标?
我想在QTabWidget的左上方添加一个图标.我不想为每个选项卡添加一个图标.如何在C ++中使用样式表或以编程方式进行操作? 解决方案 样式表下面将在所有选项卡的左侧添加图像,但不会在单个选项卡的左侧添加图像.但是,您很有可能需要调整CSS中的其他属性才能抛光最终结果. QTabWidget > QTabBar { background: url(url-to-your-corner-image); background-repeat: norepeat; margin-top: 10px; /* whatever needed to center the image vertically */ } QTabWidget > QTabBar::tab:first { margin-left: 10px; /* at least the width of your image */ } 其他解决方案 您可以使用固定的样式表添加第一个选项卡: tabw
12 2023-03-02
编程技术问答社区
Qt的TabWidget中的OSGViewer
我正在使用openscenegraph 3.0.1并使用 进行QT集成问题 osgQt::GLWidget在启动期间将其添加到选项卡控件时(我的主窗口的构造函数内部. MainWindow::MainWindow(QWidget* parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); QWidget* viewerWidget = new MyViewerWidget(new osgViewer::Viewer()); ui->tabWidget->addTab(viewerWidget, "My Osg View"); // tab entry was added but nothing to see than empty Osg Window } 显示主窗口后从菜单调用代码时,它有效: void gcdrp::MainWi
14 2023-03-02
编程技术问答社区
如何将一个RadioButton连接到一个QTabWidget?
我正在使用C ++和QT创建一个软件,并且我有两个小部件Qradiobuton类型和一个QTABWIDGET.我的需求是我想从广播按钮发送信号,我希望每当检查按钮时,标签的内容都会更改. 谁能建议该怎么做?我尝试创建一个小部件类的插槽,在那个插槽中,我称为TAB类的构造函数,但问题是没有调用约束. 这是我正在使用的代码. #include #include "v_lab.h" v_lab::v_lab(QWidget *parent) : QDialog(parent) { setWindowTitle("Virtual Lab"); maingroup=new QGroupBox(this); maingroup->setTitle("Algorithms"); maingroup->setMinimumWidth(200); maingroup->setMaximumWidth(240); maingro
8 2023-03-02
编程技术问答社区
在QTabWidget中动态样式化一个单独的标签
我知道,这个问题已经在这里和其他网站上进行了讨论,但是尚未有一个真正的解决方案,尽管我认为我不是唯一有这个问题的人: 如何单独和动态访问单个选项卡(而不是其内容resp.在选项卡中的小部件)来进行样式目的,例如更改背景颜色或向其添加图形效果? 应用程序可能是要通知用户,即通过让其以另一种颜色闪烁(例如在Windows任务栏中,如果窗口想要获得焦点)来通知用户. 有一个更改文本颜色的功能,为什么不更多? 样式表可用于访问选定的第一个选项卡,但不能通过其索引来访问特定的选项卡. 有人谈论了QTABBAR的子分类,但我不知道,这将如何导致所需的解决方案. 是否有可能实现这一目标,如果是,请提供一个例子. 解决方案 为了访问每个QTabBar选项卡的每种样式,您必须覆盖它的paintEvent()方法. 这样做的通用方法应该具有以下结构: void paintEvent(QPaintEvent *event){ QStylePainter painter(thi
30 2023-03-01
编程技术问答社区
如何在C++中改变QTabWidget的文本对齐方式?
这与以下问题相同: 如何更改qtabwidget中的文本对齐? 我尝试将该Python代码移植到C ++中,但似乎不起作用. 这是标题文件: #include class HorizontalTabWidget : public QTabBar { Q_OBJECT public: explicit HorizontalTabWidget(QWidget *parent = 0); protected: void paintEvent(QPaintEvent *); QSize sizeHint() const; }; 这是源文件: void HorizontalTabWidget::paintEvent(QPaintEvent *) { for(int index = 0; index
70 2023-02-28
编程技术问答社区
取决于当前标签的QTabWidget大小
我QTabWidget,其中包含不同高度的小部件(其宽度固定),但是,QTabWidget的默认实现选择最大的小部件的高度为自己的高度. 我想知道是否有一种(可能快速的)方法可以根据其当前标签更改QTabWidget的大小,以在显示较小的选项卡时节省空间. 解决方案 您可以将显示为QSizePolicy::Preferred的小部件的大小策略和其他策略设置为QSizePolicy::Ignored.在该调用之后,adjustSize更新大小.例如,您可以将QTabWidget的currentChanged信号连接到插槽: connect(ui->tabWidget,SIGNAL(currentChanged(int)),this, SLOT(updateSizes(int))); 和设置尺寸策略并在插槽中相应调整尺寸: void MainWindow::updateSizes(int index) { for(int i=0;itabWid
16 2023-02-28
编程技术问答社区
QTabWidget增加标签滚动器箭头按钮的宽度
我有一个QTABWIDGET,带有太多标签 ,它们会随滚筒箭头溢出.我想将滚动器箭头的宽度增加超过两次默认宽度,以便在触摸屏上使用它们. 有一个 qtabwidget Stylesheet示例/a>,但我似乎无法使它正常工作.下面的样式表产生此屏幕截图 QTabBar::scroller { /* the width of the scroll buttons */ width: 40px; } QTabBar QToolButton { /* the scroll buttons are tool buttons */ width: 15px; border-width: 2px; } 我想在哪里编辑此类屏幕截图. 解决方案 方法#1:这似乎是一个错误,简单而简单.按钮的背景是透明的.但是将其设置为白色样式表并设置宽度也不正常. 我能够通过使用样式表解决问题: QTabBar::scroller {width: 0px
266 2023-02-27
编程技术问答社区
如何在QTabWidget Qt中扩展标签
我有一个像这样的QTabWidget: ,但我想将选项卡展开以"填充"整个小部件宽度,例如: 我该怎么做? 我正在使用 QT 5.3.2 和 QT创建者3.2.1 更新: 我尝试使用setExpanding函数: ui->myTabWidget->tabBar()->setExpanding(true); 但是它不起作用. 解决方案 正如Mostefa回答在这里,我可以使用stylesheet设置标签的固定宽度. 我正在根据QTabWidget宽度计算宽度. 要正确获取QTabWidget宽度,我需要在showEvent函数中获取它: void LogListForm::showEvent(QShowEvent *ev) { /* * Divide by 2 because we have 2 tabs. * I need to decrease 24 pixels to fill the wi
82 2023-02-27
编程技术问答社区
在QTabWidget上显示/隐藏子标签
假设我有一个包含5个子标签的qtabwidget.现在,我想通过以下代码 在5个子标签之一中显示/隐藏一个子标签 ui->twListTabs->widget(0)->hide(); // Hide first sub-tab 但这对我不起作用.您有解决方案吗? 谢谢! 解决方案 您只能使用: void QTabWidget::removeTab(int index) 您需要将指针存储在标签中的Qwidget,以便以后插入它. 您可以例如做类似: 的事情 class TabWidget : public QTabWidget { Q_OBJECT enum tabwidgets {tabwidget1,tabwidget2,...,number_of_tabwidgets}; QWidget* widgets_[number_of_tabwidgets]; public: T
26 2023-02-27
编程技术问答社区
QTabWidget的标签在垂直方向,但文本在水平方向
我试图用这样的侧边栏在C ++ QT中制作应用程序: 但是,在使qtabwidget的方向向西方向时,它使文本垂直.如何在左边有文本,但是水平对齐? PS:我不需要图标.预先感谢. 解决方案 您可以使用 qlistwidget 显示" tabs"(有一些mods使它看起来像您想要的)和 qstackedwidget 像普通标签小部件一样的页面也是如此. 其他解决方案 其他解决方案 使用qproxystyle,此功能将旋转180文本,您可以旋转90. void MyProxyStyle::drawItemText( QPainter* painter, const QRect&, int alignment, const QPalette& palette,
62 2023-02-25
编程技术问答社区
QSplitter在QWidget和QTabWidget之间变得无法区分了
我将Qwidget和一个Qtabwidget彼此放置在一个Horisontal分离器中.分离器失去了形状,您可以知道只有将鼠标悬停在上面.如何使其可见? 谢谢. 解决方案 由于QSplitterHandle(大多数人认为"分离器")源自Qwidget,因此您可以向其添加其他小部件.这是我过去为解决这个确切问题所做的工作: // Now add the line to the splitter handle // Note: index 0 handle is always hidden, index 1 is between the two widgets QSplitterHandle *handle = pSplitter->handle(1); QVBoxLayout *layout = new QVBoxLayout(handle); layout->setSpacing(0); layout->setMargin(0); QFrame *line = ne
20 2023-02-25
编程技术问答社区
Qt TabWidget 每个标签的标题背景颜色
这是没有设置标题背景颜色 的原始TabWidget 我的客户要求我做这样的事情; 设置标题的不同背景颜色 All - Yellow purchase - light blue POS Sales - light green Cash Sales - Pink invoice - light purple 我尝试了: QTabBar { background-color : Yellow; } 但所有标签颜色都改变了 有人知道如何设置每个qtabbar背景颜色? 解决方案 无法通过QSS设置这些属性.要将样式更改为每个选项卡,我们必须创建一个自定义QTabBar并覆盖其paintEvent方法,以便能够更改我们使用QStyleOptionTab类的每个选项卡的样式,但是要更改QTabWidget tabbar需要使用setTabBar方法,但这是私有的,因此您需要创建一个自定义QTabWidget,如下所示:
148 2023-02-24
编程技术问答社区
在QTabWidget中添加部件
我可以添加一些小部件,例如 qlabel 和 qpushbutton 实际上,我想做这样的事情: 我正在使用C ++和QT. 谢谢 解决方案 是可能的,只需使用 qtabwidget :: setcornerwidget qtabwidget . 快速示例: QWidget* pTabCornerWidget = new QWidget(this); QLabel* pLabelTime = new QLabel(pTabCornerWidget); pLabelTime->setText("10:22:20"); QPushButton* pButton = new QPushButton(pTabCornerWidget); pButton->setText("?"); pButton->setMaximumSize(QSize(25, 25));
12 2023-02-24
编程技术问答社区
隐藏Qt标签的标签文本而不将文本设置为空字符串
我只需要一个图标QTabWidget: 如何将标签的标签文本隐藏在QT中?我无法将文本设置为一个空字符串(""),因为我正在使用停靠的小部件(QDockWidget),并且标签文本是自动设置的(如果小部件是浮动的,则我需要它. . 但是,在选项卡模式下,我只想显示(选项卡的)图标. 可能的方法: 字体大小为0? 我需要创建自己的酒吧类,并以 任何更容易/清洁的东西? ---编辑--- 好的,"设置为空字符串的窗口标题,并重置原始文本"方法.我正在为此使用topLevelChanged信号.但是,它有一些缺点,因为空文本仍然占据了一些空间.另一个问题,文本该工具提示已经消失了,我无法将其设置回. 我目前正在尝试的是"文本空"和Prasad Silva的方法之间.我尝试识别标签内的文本标签并将其大小设置为0,然后将其重置.它略有不同,但会保持文本完整. 顺便说一句,我在标签顶部看到一条线,知道这是什么(它来自哪里)? 编辑:似乎没有"简单的方式
18 2023-02-24
编程技术问答社区
PyQt4: 如何给QTabWidget中的每个标签分别着色?
我正在开发一个带有 GUI 的项目,为此我使用 Python 和 PyQt4 模块. 这是我的演示代码: import sys from PyQt4 import QtGui, QtCore class Window(QtGui.QMainWindow): def __init__(self): super(Window, self).__init__() self.setWindowTitle('PyQt4 demo') self.setGeometry(50, 50, 1000, 1000) self.createTabs() self.styleTabs() self.show() def createTabs(self): '''Creates a QTabWidget with 5 tabs, named 1, 2, 3,
590 2022-08-11
编程技术问答社区
QTabWidget有多行吗?
是否可以让 QTabWidget 表现得像 windows 系统,当标签太多时使用多行? 我查了qt的文档,好像没有这样的东西. 解决方案 您需要继承 QTabWidget 或 Widget 并自己实现此功能.如果您计划的选项卡比方便地全部放在一行中(没有箭头或多行),我建议您考虑一种不同的方法.多行上的选项卡虽然很常见,但被广泛认为是糟糕的 UI 体验.带箭头的单行只是稍微好一点:)
698 2022-08-11
编程技术问答社区
如何在Qt中制作两行标签
我想要类似下图的东西.我想要两行标签.一个包含在另一个中.是使用两个 QTabWidget 的方式吗?另外,我想提一下,程序的主窗口会显示这种结构.如果你有什么建议... 我希望标签看起来像下面这样(当然,不完全是;这个手工制作的图像很糟糕). 图片 http://imageshack.us/a/img831/3889/subtabs.png 解决方案 使用嵌套 QTabWidgets:一个外部主选项卡,它包含自己的辅助 QTabWidget(其中一个是必要的). 既然你是在看具体的,那么有三种可能的解决方案(按复杂程度排序): 看看你可以使用嵌套的 QTabWidgets 来处理 Qt 样式表.查看这个答案以获取一些示例代码,当然还有 文档中的参考. 忘记 QTabWidget,自己编写,包含自定义标签栏,并使用 QStackedWidget 或只是嵌套标签的 QStackedLayout内容.您可以像使用 QTabWidget 一样嵌套这些自定义
390 2022-08-11
编程技术问答社区
使用样式表时的QTabWidget tabPosition
我目前正在使用样式表来为应用程序设置主题.这是我用于 QTabWidget 的样式表: /*QTabBar et QTabWidget*/ QTabBar::tab { background: qlineargradient(spread:pad, x1:0.5, y1:0, x2:0.5, y2:1, stop:0 rgba(73, 73, 74, 255), stop:1 rgba(40, 40, 40, 255)); border: 1px solid rgb(190, 190, 190); max-height: 0.6em; min-width: 0.6em; padding: 5px; margin-left: -1px; margin-right: -1px; } QTabBar::tab:selected, QTabBar::tab:hover { background: qlineargradient(s
782 2022-08-11
编程技术问答社区
Qt (C++): 在QTabWidget中动态地设计单个标签的样式
我知道,这个问题已经在这里和其他网站上讨论过,但还没有真正的解决方案,虽然我认为,我不是唯一一个遇到这个问题的人: 如何单独和动态访问单个选项卡(不是其内容和选项卡中的小部件)以进行样式设置,例如更改背景颜色或为其添加图形效果?应用程序可以通知用户一个选项卡需要他的注意,方法是让它以另一种颜色闪烁(如在窗口任务栏中,如果窗口想要获得焦点).有一个改变文字颜色的功能,为什么不更多呢?样式表可用于访问选定的、第一个等选项卡,但不能通过其索引访问特定的选项卡.有人谈到子类化 QTabBar,但我不知道,这将如何导致所需的解决方案.有没有可能实现这一点,如果有,请提供一个例子. 解决方案 为了访问每个 QTabBar 选项卡的每个样式,您必须覆盖它的 paintEvent() 方法. 执行此操作的通用方式应具有以下结构: void paintEvent(QPaintEvent *event){ QStylePainter painter(this); QSt
1808 2022-08-11
编程技术问答社区