t
tettaMay 19, 2017, 10:59 a.m.

Кнопка ОК и mdi

qt, mdi

Как сделать так, что бы при нажатие на кнопку "ОК", открывался mdiarea ?

We recommend hosting TIMEWEB
We recommend hosting TIMEWEB
Stable hosting, on which the social network EVILEG is located. For projects on Django we recommend VDS hosting.

Do you like it? Share on social networks!

12
Evgenii Legotckoi
  • May 20, 2017, 2:19 a.m.

Ну. у кнопки есть сигнал clicked, подключаете слот к этом сигналу, а в слоте реализуете требуемую логику по открытию MdiArea. Например так.

connect(okButton, &QPushButton::clicked, this, &MainWindow::slotOkButton);

void MainWindow::slotOkButton()
{
    // ToDo something
    mdiArea->show();
}
    t
    • May 20, 2017, 3:51 a.m.

    Первый файл реализации:

    #include "mainarea.h"
    #include "ui_mainarea.h"
    
    #include <QMdiArea>
    
    MainArea::MainArea(QWidget *parent) :
        QWidget(parent),
        ui(new Ui::MainArea)
    {
        ui->setupUi(this);
    
        mdimain = new QMdiArea(this);
        mdimain->show();
    }
    
    MainArea::~MainArea()
    {
        delete ui;
    }
    
    А вот тут я испльзую его:
    void newF::Ok(){
        MainArea *mainarea;
        mainarea->show();
    }
    
    Я вот что-то подобное сделал, но у меня не открывается mdi, но и ошибок не выдает
      Evgenii Legotckoi
      • May 20, 2017, 5:48 a.m.

      Для начала, не вижу в вашем коде подключения этого слота к сигналу клика по кнопке Ок.

      Например, что-нибудь типо такого:

      connect(okButton, &QPushButton::clicked, this, &newF::Ok);
        t
        • May 20, 2017, 7:05 a.m.

        У меня есть диалог и он прописан в другом файле и когда я его открываю в программе, он выходит как другое окно. Мне бы хотелось, что бы диалог был в окне, которое его вызвало!

          Evgenii Legotckoi
          • May 20, 2017, 11:31 p.m.

          Не выйдет. Во всяком случае с классом, наследованным от QDialog. Если он наследован от QWidget, то может быть. Но здесь нужно поместить этот диалог в окно, как обычный виджет. И сделать абсолютное позиционирование внутри окна. Но в данном случае пропадёт обрамление у этого виджета. То есть заголовок, кнопки закрытия и сворачивания.

            t
            • May 21, 2017, 5:02 a.m.

            У меня наследован от виджета, напишите как это сделать. Все равно если пропадет обрамление, его уже нету и так.(я убрал)

              Evgenii Legotckoi
              • May 21, 2017, 5:21 a.m.

              Допустим есть окно приложения, в которое нужно поместить ещё один виджет. Тогда код будет такой:

              // Создаём виджет и в качестве parent указываем тот класс, то окно, 
              // внутри которого должен располагаться виджет (аргумент this)
              QWidget* inWidget = new QWidget(this);
              // А далее делаем абсолютное позиционирование
              // в данном случае задаются координаты внутри парента нашего виджета
              inWidget->setGeometry(50, 50, 200, 150);
              // Style Sheet я задал, чтобы выделить цветом виджет внутри окна
              // Скриншот во вложении, как это будет выглядеть.
              inWidget->setStyleSheet("QWidget { background-color: red; }");
              inWidget->show();

                t
                • May 21, 2017, 1:58 p.m.

                А еще, вот как сделать так: диалог открыт и я зади ничего не могу нажать, но когда я нажимаю, само окно мигает, типа сигнал того, что я ничего не могу делать, так как открыт диалог?

                  t
                  • May 21, 2017, 2:23 p.m.

                  И еще. Как сделать так, что когда уже создано диалог, то я не могу еще создать, пока не закрою этот? (простите, что так много )

                    t
                    • May 21, 2017, 2:56 p.m.

                    Я смог отрыть mdi, но только он открывается место диалога. А мне надо, что бы он открывался в программе!

                      t
                      • May 21, 2017, 2:58 p.m.

                      И как в диалоге сделать ограничение по символам?

                        Evgenii Legotckoi
                        • May 23, 2017, 1:58 a.m.
                        Я смог отрыть mdi, но только он открывается место диалога. А мне надо, что бы он открывался в программе!

                        Слушайте, Вы серьёзно полагаете, что можно предложить определённое решение не видя того, что вы там понаписали в своём коде? Тем более, неизвестно, что творится в вашей голове, когда вы говорите, что открываете mdi вместо диалога, который ещё и неизвестно от чего наследован и как реализован, и как реализовано открытие этого диалога или mdi. У вас вопросы по локальной ситуативной реализации в вашем конкретном случае. Другим за Вас додумывать, как Вы уже написали свою программу?

                          Comments

                          Only authorized users can post comments.
                          Please, Log in or Sign up
                          AD

                          C ++ - Test 004. Pointers, Arrays and Loops

                          • Result:50points,
                          • Rating points-4
                          m

                          C ++ - Test 004. Pointers, Arrays and Loops

                          • Result:80points,
                          • Rating points4
                          m

                          C ++ - Test 004. Pointers, Arrays and Loops

                          • Result:20points,
                          • Rating points-10
                          Last comments
                          i
                          innorwallNov. 14, 2024, 12:07 p.m.
                          Circuit switching and packet data transmission networks Angioedema 1 priligy dapoxetine
                          i
                          innorwallNov. 14, 2024, 11:42 a.m.
                          How to Copy Files in Linux If only females relatives with DZ offspring were considered these percentages were 23 order priligy online uk
                          i
                          innorwallNov. 14, 2024, 9:09 a.m.
                          Qt/C++ - Tutorial 068. Hello World using the CMAKE build system in CLion ditropan pristiq dosing With the Yankees leading, 4 3, Rivera jogged in from the bullpen to a standing ovation as he prepared for his final appearance in Chicago buy priligy pakistan
                          i
                          innorwallNov. 14, 2024, 4:05 a.m.
                          EVILEG-CORE. Using Google reCAPTCHA 2001; 98 29 34 priligy buy
                          i
                          innorwallNov. 14, 2024, 4 a.m.
                          PyQt5 - Lesson 007. Works with QML QtQuick (Signals and slots) priligy 30mg Am J Obstet Gynecol 171 1488 505
                          Now discuss on the forum
                          i
                          innorwallNov. 14, 2024, 3:39 a.m.
                          добавить qlineseries в функции priligy amazon canada 93 GREB1 protein GREB1 AB011147 6
                          i
                          innorwallNov. 11, 2024, 10:55 a.m.
                          Всё ещё разбираюсь с кешем. priligy walgreens levitra dulcolax carbs The third ring was found to be made up of ultra relativistic electrons, which are also present in both the outer and inner rings
                          9
                          9AnonimOct. 25, 2024, 9:10 a.m.
                          Машина тьюринга // Начальное состояние 0 0, ,<,1 // Переход в состояние 1 при пустом символе 0,0,>,0 // Остаемся в состоянии 0, двигаясь вправо при встрече 0 0,1,>…

                          Follow us in social networks