Добавить кнопку на виджет Qt

170
20 мая 2019, 09:00

Нужна функция добавления кнопки на виджет

void func(QWidget *widg){
  QPushButton butt(widg);
}
int main(int argc, char *argv[])
{
  QApplication a(argc, argv);
  QWidget widg;
  func(&widg);
  widg.show();
  return a.exec();
}

Не добавляет

Answer 1

Поясню — проблема в том, что у Вас в функции Ваша кнопка создается в стэке. И при выходе из функции она удаляется.

Одно из простейших решений (и, имхо, наиболее правильное) — создавать в куче. Как в примере ниже. Ну и, естественно, почитайте умные книжки. Проще будет. Проще, чем все пытаться решить опытным путем.

#include <QApplication>
#include <QPushButton>
void func(QWidget *widg){
QPushButton *butt = new QPushButton(widg);
}
int main(int argc, char *argv[])
{
  QApplication a(argc, argv);
  QWidget widg;
  func(&widg);
  widg.show();
  return a.exec();
}

READ ALSO
Как работает pow() в С++?

Как работает pow() в С++?

Решил глянуть код С++ -ного pow()Как это работает?

190
Как сравнить float и double?

Как сравнить float и double?

Как правильно сравнивать два числа типа float и double? Следующий способ часто говорит, что одинаковые числа различны:

118
property в GNU Compiler Collection

property в GNU Compiler Collection

Есть ли в GCC аналог microsoft'овских property https://msdnmicrosoft

150