Лист свойств .NET для Qt? Какие-либо предложения?

У меня есть некоторые переменные, которые я хочу изменить через графический интерфейс. Переменные бывают четырех типов: bool, long long, double, char *. Требуются разные виджеты для разных типов:

  • QCheckBox для bool
  • QSpinBox для long long
  • QDoubleSpinBox для double
  • QLineEdit для char*

Или поменять char* на std::string - не важно.

Итак, мне нужен виджет, который может рисовать N строк для N параметров различных типов. Каждая переменная может иметь свое имя для отображения в графическом интерфейсе.

Я реализовал свой виджет, но ищу "стандартное решение" этой задачи. Мой собственный импл: http://savepic.net/1742263.png

Хотите что-то вроде форм свойств Qt Designer.


person pavelkolodin    schedule 27.07.2011    source источник
comment
Это может помочь: stackoverflow.com/questions/1290838/   -  person Rob    schedule 27.07.2011


Ответы (2)


создайте свой собственный подкласс 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() в вашем приложении.

person Subaru Tashiro    schedule 17.12.2011

У Industrial Infosystems есть бесплатный «браузер значений», который может быть полезен: http://www.ii-system.com/soft/vbrowser/vbrowser_en.htm.

person Xander B.    schedule 22.08.2011