我想通过 GUI 更改一些变量。变量有四种类型:bool
、long long
、double
、char *
。需要不同类型的不同小部件:
bool
的 QCheckBox- QSpinBox for
long long
- QDoubleSpinBox 用于
double
- QLineEdit for
char*
或者将 char*
更改为 std::string
- 没关系。
所以我需要一个可以为N个各种类型的参数绘制N条线的widget。每个变量都可以有自己的名称以显示在 GUI 中。
我已经实现了自己的小部件,但正在寻找此任务的“标准解决方案”。我自己的暗示:http://savepic.net/1742263.png
想要类似 Qt Designer 的属性形式。
最佳答案
创建您自己的 QWidget 子类以制作您自己的“属性小部件”,它将具有 QLabel 和变量类型的相应小部件。然后将您的自定义“属性小部件”添加到您的应用程序。
例如,如果你需要为 bool 类型添加一行,它的类看起来像这样:
class BoolPropertyWidget : public QWidget
{
QHBoxLayout layout;
QLabel label;
public:
QCheckBox value; //if you would like to access the actual bool value, you can just use value.isChecked()
BoolPropertyWidget() {
//...do necessary adjustments layout, label and value here
layout.addWidget(&label);
layout.addWidget(&value);
setLayout(&layout);
}
};
然后,如果您需要将属性小部件添加到您的应用程序中,您只需创建一个 BoolPropertyWidget 实例并在您的应用程序中使用布局对象的 addWidget() 成员函数。
这将让您创建一个应用程序,其中包含任意数量的必要“属性小部件”,无论它是什么类型。
如果您的应用程序在添加您的自定义“属性小部件”后无法正确调整大小,请尝试在您的应用程序上调用 adjustSize()。
关于c++ - Qt 的.NET 属性表?有什么建议么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6845853/