Название: [РЕШЕНО]Вызов дополнительных виджетов Отправлено: maria123252 от Июнь 27, 2017, 16:02 есть небольшой проект, в котором по кнопке создается новый виджет. Проблема в том, что когда для кнопок на дополнительном виджете начинаю прописывать код, кнопки на дополнительном виджете не работают. Связку между главным окном и виджетами вроде сделала (родитель-предок). Но мне кажется, что я неправильно вызываю дополнительные виджеты. Подскажите, пожалуйста, советом.
void Client_mkpu::on_control_channel_clicked() // кнопка "Управление каналами" { QWidget *widgetControlChannel = new QWidget; Ui::management_channels ui_management_channels; ui_management_channels.setupUi(widgetControlChannel); widgetControlChannel->setWindowFlags(Qt::CustomizeWindowHint | Qt::WindowTitleHint | Qt::WindowCloseButtonHint | Qt::WindowSystemMenuHint); widgetControlChannel->show(); } Вызываю вот так виджет, а хотелось бы вызывать неновый виджет, а перейти к моему виджету и его классу Название: Re: Вызов дополнительных виджетов Отправлено: Racheengel от Июнь 28, 2017, 11:22 Мне кажется, что первое, что надо сделать - это widgetControlChannel оформить отдельным классом-наследником от QWidget.
Название: Re: Вызов дополнительных виджетов Отправлено: maria123252 от Июнь 28, 2017, 12:17 Мне кажется, что первое, что надо сделать - это widgetControlChannel оформить отдельным классом-наследником от QWidget. Вот класс наследник, это всё сделано#include "ui_management_channels.h" #include "Client_mkpu.h" namespace Ui { class management_channels; } class management_channels : public Client_mkpu, private Ui::management_channels { Q_OBJECT public: explicit management_channels(Client_mkpu *parent = 0); ~management_channels(); private slots: private: Ui::management_channels *ui_management_channels; }; //========================================= management_channels::management_channels(Client_mkpu *parent) : Client_mkpu(parent), ui_management_channels(new Ui::management_channels) { ui_management_channels->setupUi(this); } management_channels::~management_channels() { delete ui_management_channels; } Название: Re: Вызов дополнительных виджетов Отправлено: kambala от Июнь 28, 2017, 12:28 виджет нужного класса надо создавать через
Код вместо Код если я правильно понял суть вопроса Название: Re: Вызов дополнительных виджетов Отправлено: maria123252 от Июнь 28, 2017, 12:41 виджет нужного класса надо создавать через и в дальнейшем я перейду на класс и буду пользоваться функциями в классе?Код вместо Код если я правильно понял суть вопроса Название: Re: Вызов дополнительных виджетов Отправлено: maria123252 от Июнь 28, 2017, 13:39 реализовала по вашей рекомендации, но теперь по кнопке выходит виджет, с наложением от главного окна
void Client_mkpu::on_telemetry_mkpu_clicked() // кнопка "Телеметрия МКПУ" { telemetry_mkpu *widgetTelemetryMkpu = new telemetry_mkpu(this); widgetTelemetryMkpu->show(); } Название: Re: Вызов дополнительных виджетов Отправлено: kambala от Июнь 28, 2017, 15:14 я ж не говорил выкинуть установку флагов окна :)
Название: Re: Вызов дополнительных виджетов Отправлено: maria123252 от Июнь 28, 2017, 15:40 я ж не говорил выкинуть установку флагов окна :) а если их оставить, то получается следующее.Название: Re: Вызов дополнительных виджетов Отправлено: kambala от Июнь 28, 2017, 21:49 а, там не хватает флага Qt::Window
|