草庐IT

零部件

全部标签

c++从函数访问父小部件

我是C++和Qt的新手,我正在尝试从父类访问小部件。这是我的主窗口.cppMainWindow::MainWindow(QWidget*parent):QMainWindow(parent),ui(newUi::MainWindow){ui->setupUi(this);}我有另一个类(class),我正试图从那个类(class)的“ui”访问一个小部件。像这样:DashBoard::DashBoard(MainWindow*parent):QObject(parent){}voidDashBoard::select(){parent->ui->menuSL->setCurrentIn

c++ - 我应该如何使用带有布局和小部件的 QGraphicsScene

我正在Qt4中创建一些图形数据显示小部件,我很想为其使用QGraphicsScene,为数据项等创建QGraphicsItem。但是,我想添加一些控件层(例如滚动条、缩放+其他按钮-我想以类似于Googlemap的样式制作它,也就是说,数据将显示在整个小部件上,并且按钮将显示在它们的顶部)到小部件。所以我认为将它们添加到场景中可能是可行的(也许作为将在数据上显示的QGraphicsGroupItem的子项)。但是我希望它们在我调整整个小部件大小时移动和调整大小,所以我应该使用QGraphicsLayout来管理它们。但此时,我发现事情相当复杂。问题是当使用QGraphicsLayout

c++ - 是否可以设置 qt 小部件的不透明度?

我知道有一个函数QWidget::setWindowOpacity(qreallevel)但正如文档中所写,这只适用于Windows。有没有办法让位于布局内部的小部件也变得不透明?我正在尝试做的是一个小部件逐渐淡入的动画。我曾经用首选项对话框来做这个并且在那里工作。那么您认为有没有一种方法或解决方法可以实现布局内小部件的不透明度?你会怎么做?提前致谢! 最佳答案 只需使用QGraphicsOpacityEffect即可实现此效果。Qt4:http://doc.qt.io/qt-4.8/qgraphicsopacityeffect.h

c++ - QT - 将小部件添加到水平布局

我有一个水平布局,我正在通过使用添加小部件ui->horizontalLayout->addWidget(label);但是添加策略不是我想要的。例如,当我添加项目时,它首先放置开始,然后放置在末尾并从末尾继续放置。但是,我想要的是,当我将小部件添加到布局时,它应该放在前一个小部件的旁边。像那样,有可能吗? 最佳答案 在添加所有小部件后,向其添加一个担架。ui->horizontalLayout->addStretch();会做。 关于c++-QT-将小部件添加到水平布局,我们在Stac

c++ - QT 如何将应用程序嵌入到 QT 小部件中

在我们的项目中我们有三个独立的应用程序,我们要开发一个QT控件应用程序来控制这三个应用程序。主窗口将分为三个子窗口-每个子窗口显示另一个应用程序。我想用QX11EmbedWidget和QX11EmbedContainer小部件,但有两个问题:QX11Embed*基于X11协议(protocol),我不知道它是否受Windows操作系统等非x11系统的支持。自QT5以来,这些类不存在,QT文档也没有提及原因。所以我不知道是否使用它-我很乐意得到答案。另外,我看到QT5.1包含QWidget::createWindowContainer();功能,在某些帖子中它看起来应该是X11Embed

c++ - 如何确定 qtable 单元格中的小部件类型?

我已经创建了一个QTable,其中包含许多gui元素,如comboBoxes和checkBoxes在不同的单元格中。我可以通过创建指向它们的指针来访问这些元素。我想知道的是,有什么方法可以知道单元格具有什么类型的widget(comboBox或checkBox)? 最佳答案 查看thisquestion的答案.接受的答案从小部件的meta-object中获取类名(作为constchar*)像这样:widget->metaObject()->className();还有另一个答案建议使用C++的类型管理,但这听起来不太实用(更笨拙?)

c++ - 哪个 Qt Widget 可以滚动浏览小部件?

我目前正在为我的学校开发一个Qt项目。对于这个项目,我需要在不调整其内容大小的情况下在窗口中列出未知数量的元素。我过去使用过一些VBoxLayout,但这根本不是我要搜索的内容。此小部件根据其包含的元素数量调整其内容的大小。我想要的是将尽可能多的小部件添加到“滚动小部件”中,这些小部件将自动堆叠在一起并且不会调整大小。我尝试使用QScrollArea但我无法让元素相互堆叠。这是一张解释我的问题的小图: 最佳答案 下面是我如何使用QVBoxLayout和QScrollArea实现的://scrollviewsoallitemsfiti

c++ - qt - 小部件 - 定位

我想将一些小部件放置在一些随机位置的父小部件中,比如一个按钮在点(10,10)和另一个在(15,40)等。如何实现这个?。QGridLayout正在将所有内容插入行列样式。但是我想把小部件放在任何我想要的地方,有人可以帮我吗? 最佳答案 如果您真的想要设置绝对位置,我会完全忽略使用布局。您可以使用move()函数或setGeometry()函数手动设置元素的位置。QWidget*parent=newQWidget();parent->resize(400,400);QPushButton*buttonA=newQPushButton

windows - Windows 和 OS X 上的 GTK+ 是使用 native 小部件还是模拟它们?

GTK应用程序在这些环境中看起来是原生的吗? 最佳答案 不,GTK在Windows/Mac上看起来都不是原生的。有改善视觉差异的主题,也有一些项目致力于使GTK的外观和行为更原生,例如IGE-mac,GTKQuartz.总而言之,Windows上的GTK比Mac上的GTK更接近原生,因此应该可以通过一些努力在Windows上获得原生外观的GTK。如果您真的需要一个在Windows/OSX/X11上看起来原生的工具包,并且您不限于C,我认为目前QT比GTK更接近于实现这一点。 关于wind

c++ - 如何在 Qt 的层次结构的根小部件中获取鼠标按下事件

我在使用Qt时遇到以下问题(该网站上似乎没有答案可以准确解决这个问题,所以我创建了自己的问题)。我有一个应用程序,它有一个继承自QWidget的MainWindow类。在某个时刻,主窗口内有一个表格,我想捕获该表格外的所有鼠标按下事件。我的第一个解决方案是重新实现该方法/*virtual*/voidMainWindow::mousePressEvent(QMouseEvent*event)在这个方法中,我检查事件的位置并检查它是否不在表格的QRect内。不幸的是,我意识到mousePressEvent()并不总是被调用。我怀疑如果我单击MainWindow的另一个子窗口小部件,该窗口小