Bezdepbonusu7Программирование: статьи и ответы

Вопрос

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

Автор вопроса: pavelkolodinОтветов: 2

У меня есть некоторые переменные, которые я хочу изменить через графический интерфейс. Переменные бывают четырех типов: 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.

  • Это может помочь: stackoverflow.com/questions/1290838/ Rob 27.07.2011

c++widgetparametersqtsettings

Ответы

Ответ 1 · рейтинг 1 · Subaru Tashiro

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

Ответ 2 · Xander B.

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

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы