Вообщем, не понимаю как правильно создавать второе окно. Есть функция addTimer(), как метод класса главного окна MainWindow.
class MainWindow : public QMainWindow
{
public:
MainWindow();
protected:
void timerEvent(QTimerEvent *e);
QMap<QTimer*,QTextEdit*> getTimers();
private:
QToolBar *toolbar;
void setToolBar();
QLabel *timelbl;
QLabel *mainTimerLbl;
QTextEdit *mainTimerDescriptionLbl;
QListWidget *listW;
QMap<QTimer*,QTextEdit*> timers_descriptions;
QWindow *addWindow;
void addTimer();
};
Сама функция
void MainWindow::addTimer()
{
addWindow = new QWindow();
addWindow->resize(200,120);
addWindow->setTitle("New Timer");
QLabel *timeLbl = new QLabel("Time",this);
timeLbl->setGeometry(20,60,50,20);
QTimeEdit *timeEdit = new QTimeEdit(this);
timeEdit->setGeometry(90,65,100,25);
addWindow->show();
}
Вообщем, окно создаётся, но QLabel и QTimeEdit не появляется. Подскажите как правильно
QWindow служит для других задач, для десктопных приложений лучше использовать QWidget, QDialog, или QMainWindow
.
Возьмем QWidget, тогда отображение вашего окна и его содержимого будет таким:
class MainWindow : public QMainWindow
{
//...
private:
QWidget* addWindow;
};
void MainWindow::addTimer()
{
addWindow = new QWidget();
addWindow->resize(200,120);
addWindow->setWindowTitle("New Timer");
QLabel *timeLbl = new QLabel("Time");
timeLbl->setGeometry(20,60,50,20);
QTimeEdit *timeEdit = new QTimeEdit();
timeEdit->setGeometry(90,65,100,25);
// Добавим на окно менеджер вертикального расположения элементов
addWindow->setLayout(new QVBoxLayout());
// А теперь, при помощи менеджера расположения, добавим сами виджеты на окно
addWindow->layout()->addWidget(timeLbl);
addWindow->layout()->addWidget(timeEdit);
addWindow->show();
}
Про QVBoxLayout можно почитать здесь
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Имеется следующая проблемаЕсть функция для расчета среднего балла (индивидуальных и общего)
Можно ли double "засунуть" в bitset, чтобы он вывел его в 2виде?
Отладчик gdb не показывает содержимое переменной типа std::string