草庐IT

小部件

全部标签

c++ - Qt:在子部件上使用 QPainter

我遇到了一个简单的QWidget程序的Qt/C++问题,该程序在子QWidget中绘制了一个椭圆。程序组成:(1)父QWidget(2)子QWidget(用作椭圆的绘图表面)(3)绘制QPushButton这里是部分代码(QPushButtonSlot和Signal代码为简单起见省略)voidDraw::paintEvent(QPaintEvent*event){QPainterpainter;painter.begin(child_Widget);//Thelinewiththeproblempainter.setRenderHint(QPainter::Antialiasing,t

c++ - 你如何在 Qt 中设计带有大量小部件的类?

我遇到了一个问题,我应该如何在Qt中设计我的类,以防止代码困惑。我的MainWindow有很多Buttons、Labels和其他小部件。我不想让它太大,我想在一个单独的类中处理按钮按下的回调。问题是,我想尽可能简单地将有关Button按下和字符串输入到LineEdits的所有信息传递给类。因此,我创建了一个仅保存数据的类(Data)。我的测试代码中的另一个类名为MainModule,它只是执行主循环并接收按钮按下的结果。此外,我必须根据MainModule中发生的情况发送更改,以便我可以设置Labels等。我对MainWindow和MainModule类以及指向数据类的指针执行了此操作

c++ - OpenGL 在 Qt 中绘制小​​部件

我正在开发一个在Mac上使用Cocoa的Qt应用程序,并使用PowerVRSDK在Mac桌面上启用OpenGLES2.0。我已经设法让它工作了,一切都完美呈现,问题是当我在那个窗口中创建一个小部件时,OpenGL会在它上面渲染,例如我正在创建一个QLabel并在其上呈现,使标签不可见。我尝试在渲染单个OpenGL帧后调用QLabel的repaint()方法,但这没有帮助。有没有人遇到过这样或类似的问题,有什么建议吗?谢谢! 最佳答案 如果您希望小部件与OpenGL内容互操作,您必须使用QOpenGLWidget。它绘制到屏幕外缓冲区

c++ - 是什么让 Qt 小部件及其布局正确运行(就其大小而言)?

我在使用Qt时遇到了各种大小问题。我正在创建自己的小部件并使用不同的布局(通常,我需要自己的小部件才能使它们正常工作,而无需在“强大的”默认布局上花费数小时......这不会按预期进行布局。)一旦我完成了一个小部件及其布局,它就无法正常工作。除非我调用widget->resize(1,1);,否则尺寸永远不会正确设置最终强制“调整大小”并使小部件看起来正确(即重新计算几何形状。)甚至updateGeometry()调用无效。这是一个可怕的问题,当resize()需要在父小部件上调用(糟糕!)并且从我正在阅读的内容来看,如果布局正确编程,则不需要。是否有一个有效的示例并且没有几千行长,或

c++ - 如何在 Qt 中分层独立的小部件?

我正在使用Qt创建一个应用程序,它包含一个用作应用程序背景的小部件,以及一个float在上方的用户控制界面。一个类似的例子是谷歌地图,map在背景上,控件在背景之上。但问题是背景小部件可以更改为不同的小部件(有一个显示map的小部件,另一个显示视频源的小部件,...)用户控制界面中的按钮也是如此,它们与当前背景没有直接关系,可以动态改变。我试过使用QStackedLayout,使用两层,背景小部件和用户控制界面。但是你不能与背景层交互,因为所有的点击都被前面的小部件阻止了。有什么建议吗? 最佳答案 您可以使用QObject::ins

c++ - 如何更改 Qt 中的窗口标题和中央小部件?

您好,我在Qt中更改窗口标题和中央小部件时遇到问题。有主窗口:classMainWindow:publicQMainWindow{//(...)QStackedWidget*widgets;Quiz*widget1,*widget2;}还有一个类测验:classQuiz:publicQWidget{publicslots:voidmyClicked();}我想在单击按钮后更改MainWindow标题,这是Quiz的一个元素(它与slotmyClicked相关联)。voidQuiz::myClicked(){static_cast(parent).myFunction();}voidMa

c++ - qt小部件位置

我有一个网格布局的主窗口,两行有8个按钮。---------------------|||1234||||||5678|||---------------------我试图在单击的按钮旁边显示一个弹出对话框。因此,我试图获取连接到clicked()信号的插槽中按钮的坐标。我试过了QPointp=btn->pos();和QPointp=btn->geometry().topLeft();并且出于某种原因两者都是(0,0)。如何获取在该插槽中单击的按钮的位置?谢谢 最佳答案 我认为您需要映射按钮相对于父窗口的位置。QWidget::ma

c++ - QDockWidget 上的多个小部件

我正在制作一个小应用程序,用于使用Qt和C++对图像应用各种滤镜。我的问题是,是否可以在QDockWidget上添加多个widget?因为我想添加按钮以重新应用停靠栏上的最后5个过滤器。这是我想要实现的示例。 最佳答案 可以将多个QWidget添加到任何QWidget中。看起来你可能想做这样的事情:QDockWidgetdock(QLatin1String("Lastfilters"));QWidget*multiWidget=newQWidget();QVBoxLayout*layout=newQVBoxLayout();QPus

c++ - 如何在 Qt 中以编程方式调整拆分器小部件的大小?

我使用QSplitter并排放置一些小部件。作为用户,我只需拖动分隔条即可调整这些小部件的大小。作为一名程序员,我现在不知道如何准确指定我想要的宽度和高度。这是我的原始状态(通过不同的拉伸(stretch)调整)。我尝试使用setFixedSize(),但在该调用之后,用户无法再自行调整小部件的大小(这绝对是正确的行为,因为大小已“固定”)。如果我使用resize(),它几乎没有效果。小部件已调整大小,但(!)不正确,并且(!)当我再次开始拖动时,小部件将获得其初始状态。有什么方法可以正确调整代码中左侧小部件的大小吗?我不想有固定大小,但resize()不能正常工作,如您所见。那我该怎

c++ - 在 Qt 中将多个小部件合并为一个

我在项目中重复使用一对QComboBox和QListWidget。它们的交互是高度耦合的——当在组合框中选择一个项目时,列表会以某种方式进行过滤。我正在跨多个对话框实现复制粘贴这两个小部件之间的所有信号和插槽连接,我认为这不是一个好主意。是否可以创建一个自定义小部件,它将容纳这两个小部件并将所有信号和插槽连接放在一个地方?如下所示:classCustomWidget{QComboBoxcombo;QListWidgetlist;...};我想将此小部件用作单个小部件。 最佳答案 通常的做法是子类QWidget(或QFrame)。cl