c++ - Qt 的.NET 属性表?有什么建议么?

标签 c++ qt parameters widget settings

我想通过 GUI 更改一些变量。变量有四种类型:boollong longdoublechar *。需要不同类型的不同小部件:

  • 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/

相关文章:

ruby - 如何从参数数组中检索 Ruby/Sinatra 参数?

c# - 在 LINQ to SQL 中将枚举值作为存储过程(数据函数)参数传递

java - 如何使用 Java 在 C++ 和 Direct9 编码的网页中运行应用程序?

c++ - 解释这个 C++ 运算符定义

c++ - Qt 如何在幕后共享 OpenGL 上下文?

qt - 为 Qt + OpenGL + GLUT + GLEW 应用程序创建安装程序

ruby - 有没有办法在ruby中返回方法参数名称

java - JNI- FindClass 函数返回 null

c++ - 指向成员函数的指针在不同地址空间之间的可交换性

c++ - 错误 : C2248: 'QGraphicsItem::QGraphicsItem' : cannot access private member declared in class 'QGraphicsItem'