jjzjj

c++ - 在哪里保存 QWidget 动画的状态以便在 QStyle 绘制函数中使用?

一个QWidget作为一个paintEvent函数负责他的绘图。为了正确实现这个功能,一个QStyle对象被用来表示每个组件,一个QStyleOption对象被用来保存控件的状态。例如:一个自定义的ScrollBar实现了他的paintEvent,它调用带有选项“CC_ScrollBar”的drawComplexControl。然后,可以扩展QProxyStyle以更改滚动条的外观。当用户悬停slider时,调用paintEvent应用新的“悬停”外观,该状态保存在QStyleOption::state中。但是对于现在一天的小部件,这种状态不应该立即更新,而是在大约100-500毫秒内

c++ - QWidget* QApplication::mainWidget() 在 Qt4 中变成了什么?

我正在将一个应用程序从Qt3移植到Qt4,并且需要Qt4替换QApplication::mainWidget(),它用于返回Qt3中的顶级小部件。有谁知道如何在Qt4中执行此操作? 最佳答案 从技术上讲,任何用NULL初始化的小部件都是顶级小部件,因此QApplication不应假定其中一个比另一个更好。我通常这样做的方式是在某处保存指向“真实”主小部件的指针,甚至是全局变量或单例,并在需要时引用它。 关于c++-QWidget*QApplication::mainWidget()在Qt

c++ - 我如何继承 QWidget 和 QThread?

我有这样一个类classGUI:publicQWidget,publicQThread当我执行上述操作时,我收到有关连接信号的错误。错误说Referenceto"connect"isambiguous。有没有办法从两者继承?谢谢 最佳答案 你不能。QWidget和QThread都(非虚拟地)继承自QObject。因此,您没有虚拟派生,因此没有QObject的两个拷贝,这会使编译器感到困惑。QObject就是专门这样设计的。见:http://lists.trolltech.com/qt-interest/2006-10/msg0071

c++ - Qt 响应子 QWidget 中的 keyPressEvent

我有一个这样的QWidget派生类:classtetris_canvas:publicQWidget{Q_OBJECTpublic:tetris_canvas(QWidget*parent=0);~tetris_canvas();protected:voidpaintEvent(QPaintEvent*event);voidkeyPressEvent(QKeyEvent*event);};//NeverhitsthiskeyPressEvent!!!voidtetris_canvas::keyPressEvent(QKeyEvent*event){if(event->key()==Qt

c++ - Qt 中 QWidget 的模糊效果

有什么方法可以模糊Qt中的小部件吗?例如,假设我想创建一个“正在加载...”对话框并模糊背景(非事件窗口)。 最佳答案 这个答案在我的一系列与覆盖相关的答案中:first,second,third.如果您希望它适用于所有平台,则需要多加注意。您不能将效果直接应用于顶层窗口。层次结构需要如下所示:ContainerWidget|+----------+||**Target**Overlay您将效果应用于Target小部件(例如,QMainWindow)。ContainerWidget是一个辅助类,它可以让子元素占据整个小部件的大小。这

c++ - 强制 QObject 作为 QWidget 的父级会产生什么后果?

下面的代码可以完美编译:QObject*o=newQObject(0);QWidget*w=newQWidget(0);qobject_cast(w)->setParent(o);我不能合法地将QObject设置为QWidget的父级。但是使用qobject_cast是可能的。有负面影响吗? 最佳答案 WhatareconsequencesofforcingQObjectasaparentofQWidget?不可撤销的未定义行为。Qt的设计目的不是为了支持QWidget的非widgetparent。我认为它是Qt中的API错误,因为

c++ - 没有 QApplication 无法创建 QWidget

当我编译我的qt项目时出现以下错误?QWidget:CannotcreateaQWidgetwithoutQApplication问题是什么?Main.cpp#include#include"MainWindow.h"intmain(intargc,char*argv[]){QGuiApplicationapp(argc,argv);MainWindoww;w.show();returnapp.exec();} 最佳答案 你需要一个QApplication来拥有一个QWidget。将QGuiApplication更改为QApplic

c++ - QWidget的 parent 的目的是什么?

如果我将任何小部件子​​类化,通常的模式是:ZTabWidget::ZTabWidget(QWidget*parent):QTabWidget(parent){blah...blah...}通常的模式是:WidgetBwidgetb=newWidgetB(widgeta)widgeta.addWidget(widgetb);将我所有的小部件指定为主窗口作为它们各自的父级有什么坏处吗?尽管按照addWidget层次结构,大多数这些小部件都有另一个小部件作为addWidget父级:WidgetBwidgetb=newWidgetB(mainWindow)widgeta.addWidget(

c++ - 如何将Window放入QWidget布局(Qt5)

我想在一些小部件布局中将QQuickView插入到我的旧qt4应用程序中。如何在单个应用程序中混合使用QWidget和QWindow?有例子吗? 最佳答案 这已在Qt5.1中修复。引用[1]Toremedythisproblem,Qt5.1introducesthefunctionQWidget::createWindowContainer().AfunctionthatcreatesaQWidgetwrapperforanexistingQWindow,allowingittoliveinsideaQWidget-basedapp

c++ - 在调整大小时保持子类 QWidget 的纵横比

我正在通过子类化QWidget类来创建一个新的小部件。我希望能够为此小部件设置一个比率(针对其高度和宽度),该比率将始终保持不变。为此,我一直在使用Qt5文档、Google和Stackoverflow进行搜索。显然,我找到了答案:特别是thisone.但是,不幸的是,甚至没有一个是完全有效的:设置sizeIncrement完全没有任何作用,即使小部件是一个窗口也是如此我试图重载resizeEvent,但我真的不知道该怎么做...如果我关注thisanswer,两件事:如果小部件是顶级窗口,则根本不会保持比例,我可以根据需要调整它的大小。如果我将此小部件放置在布局中,如果我只是增加窗口的