问题标签 [qwidget]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - 如何在 Qt 的后续函数调用中访问在函数中创建的小部件
所以目前我有代码,在 C++ 中,当从 QComboBox 进行选择时,它会创建一些 QLabel、QLineEdit 和 QCheckBox。但是,如果从组合框中进行了新的选择,我希望能够访问我在以后的函数中创建的小部件以销毁它们。我可以通过执行 ui-> Object来访问使用 Designer 创建的对象,但我无法使用我自己的代码创建的对象来执行此操作。我可以这样做吗,因为我知道如何使用它。
简而言之,我希望能够根据用户所做的选择动态地创建/销毁 QWidget。是否有我应该知道的参考资料或任何文档?还是我只是完全以错误的方式解决这个问题?这是我目前用于创建对象的代码:
qt - 移除子元素后调整 Qt 窗口的大小。
我有一个QWidget
窗口,其中包含一个QSplitter
. 我在分离器的左侧和右侧都有一个QStackedLayout
(在容器内)。QWidget
主应用程序位于左侧区域,可以触发QWebViews
出现在右侧。当我删除 rightQWebView
时,Window 尝试调整大小,但保持在QWebView
. 当我尝试拖动窗口时,它会捕捉到拆分器左侧的位置。
我希望窗口在从右侧删除最后一个小部件时仅显示拆分器的左侧QStackedWidget
。我尝试了各种咒语,但我不太了解 Qt,并且正在尝试边走边学。
下面的代码是在 Java 中,使用 Jambi 包装器。C++ 中的概念应该是相同的,如有必要,我可以将任何其他语言绑定翻译到占碑。
我尝试在添加和删除小部件时设置窗口最小宽度RightStackedLayout
,但这在某些情况下会破坏拆分器句柄。我认为这是一种黑客解决方法。如果有人能指出我正确的方向,让拆分器右侧的更改更新顶级窗口,我将不胜感激。
qt - 从插件 (.so) 加载 Qt UI(带图像)时遇到问题
我有一个插件,它加载并显示一个自定义小部件,该小部件显示从资源文件 (resources.qrc) 加载的图像(作为 QLabel 的背景)。我面临的问题是,加载插件后,它会正确显示小部件,但不会显示图像。我尝试将“Q_INIT_RESOURCE(资源)”放在任何地方,但没有任何反应。我创建了许多使用 qrc 文件来显示图像的自定义小部件,但只能直接在应用程序中使用,效果很好。这次是来自插件,所以这里一定有我遗漏的东西。有什么帮助吗?
python - ScrollArea 中的自定义小部件被压扁了!
我有一个 qscrollarea 和一个 qgridlayout。在网格布局中,我创建了许多自定义小部件(为简单起见,这些小部件只是一个组框和一个标签)并在每一行添加一个。
自定义小部件不显示垂直滚动条,而是全部压缩以适应滚动区域的大小。
我通过以下方法将自定义小部件添加到滚动区域:
自定义小部件扩展了 QWidget 并重新实现了 sizeHint:
正在调用 sizeHint 方法,但小部件仍被压缩到小得多的高度。自定义小部件中的所有元素都有固定的宽度和高度,最小和最大高度和宽度设置为 660、300。
有人有什么建议可以试试吗?谢谢!
附加信息:滚动区域位于 MainWindow 中,widgetResizable 布尔值设置为 False。
明天我将尝试删除自定义小部件,看看是否可以让 scrollArea 与常规小部件一起使用。
qt4 - 如何强制 QWidget 在单独的窗口中显示?
我有
和主窗口MainWindow w;
。
我想
- 从创建 MyWidget 的新实例
w
; - 该实例将在之后
QCloseEvent
或之后被销毁w
(现在它们仅在之后被销毁QCloseEvent
); - 该实例出现在新窗口中。
我正在创建MyWidget
这样的新实例:
当我尝试widg
使用w
as创建时parent
,widg
出现在w
(左上角)的内部。
解决这个问题的最简单和最清晰的方法是什么?
谢谢!
qt - ui 在构造函数外部访问时导致 SIGSEGV
当我尝试从构造函数外部访问 ui 时,我得到一个 SIGSEGV 信号,该错误是在 prepareQuestions 函数底部的 cpp 文件的最后一行引起的
我尝试将其减少到尽可能小的代码:
标题:
cpp文件:
我主要在哪里建造
我把 QuestionDialog 放在首位:
注释错误行时的 gui(请注意更改 lbl_question1 不起作用)
使用调试器出错:
qt - QStyledItemDelegate - updateEditorGeometry 如何工作?
我正在使用 Qt 4.7。
我有一个模型,我QTableView
在两列中显示,我的目标是在我的QTableView
.
第一列可以通过简单QComboxBox
的左右切换来编辑,效果很好。问题出在我的第二列,可以使用自定义小部件进行编辑。
这个小部件有点简单,它描述了一个范围。所以有一个 QComboBox 来选择范围的种类(“固定”:值由用户给出,“源”:值从源的最小值/最大值动态调整)。
这是我的自定义小部件的源代码:
好的,现在,我创建了一个 QStyledItemDelegate 来为视图提供我的列的自定义编辑器。这是我的做法:
基本上,我得到的是一个单像素高度编辑器。
这是结果的屏幕截图:
我尝试更改updateEditorGeometry
为以下内容:
这似乎解决了大小问题,但不是位置:
我感到有点失落,因为我不知道问题是来自我的自定义小部件(没有为 Qt 提供足够的信息来正确计算其位置),还是视图(可能是一些会破坏编辑器大小的边距),或者updateEditorGeometry()
方法。
非常感谢任何帮助,感谢您的阅读!
events - 未收到 QWidget focusOutEvent
我通过子类化 QLineEdit 和 QCalendar 创建了一个日期输入。当收到 mousePressEvent 时,日历会显示在 QLineEdit 的底部。问题在于隐藏该日历。我已经覆盖了它的 focusOutEvent,因为我希望它在用户单击其他地方时关闭。但是根本没有收到这个事件,我通过在其中设置断点来确认这一点,它永远不会停在那里。我已经打电话给close()
它:
当我从 DateLineEdit 关闭它时,它按预期工作:
c++ - Qt - QWidget:不使用 GUI 时无法创建 QWidget
我正在尝试运行一个简单的Qt
程序,这样做时,我得到一个控制台窗口,其中提到:QWidget: Cannot create a QWidget when no GUI is being used
和第二行This application has requested the Runtime to terminate.....
,.exe
因此文件停止工作。
我的.pro
文件如下所示:
有什么想法吗?
谢谢。
c++ - Qt - QWidget 到底是什么
在C++ GUI Programming with Qt 4
本书中,它在第一章的一个示例中提到了QWidget
用作应用程序的主窗口。
而且,在Qt Reference Documentation
:http ://doc.qt.io/qt-4.8/qwidget.html上有很多关于 QWidget 的信息。
但是,底线是什么?QWidget主要做什么?我应该什么时候考虑?