t
tetta19 мая 2017 г. 10:59

Кнопка ОК и mdi

qt, mdi

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

Рекомендуем хостинг TIMEWEB
Рекомендуем хостинг TIMEWEB
Стабильный хостинг, на котором располагается социальная сеть EVILEG. Для проектов на Django рекомендуем VDS хостинг.

Вам это нравится? Поделитесь в социальных сетях!

12
Evgenii Legotckoi
  • 20 мая 2017 г. 2:19

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

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

void MainWindow::slotOkButton()
{
    // ToDo something
    mdiArea->show();
}
    t
    • 20 мая 2017 г. 3:51

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

    #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
      • 20 мая 2017 г. 5:48

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

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

      connect(okButton, &QPushButton::clicked, this, &newF::Ok);
        t
        • 20 мая 2017 г. 7:05

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

          Evgenii Legotckoi
          • 20 мая 2017 г. 23:31

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

            t
            • 21 мая 2017 г. 5:02

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

              Evgenii Legotckoi
              • 21 мая 2017 г. 5:21

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

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

                t
                • 21 мая 2017 г. 13:58

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

                  t
                  • 21 мая 2017 г. 14:23

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

                    t
                    • 21 мая 2017 г. 14:56

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

                      t
                      • 21 мая 2017 г. 14:58

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

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

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

                          Комментарии

                          Только авторизованные пользователи могут публиковать комментарии.
                          Пожалуйста, авторизуйтесь или зарегистрируйтесь
                          AD

                          C++ - Тест 004. Указатели, Массивы и Циклы

                          • Результат:50баллов,
                          • Очки рейтинга-4
                          m
                          • molni99
                          • 26 октября 2024 г. 1:37

                          C++ - Тест 004. Указатели, Массивы и Циклы

                          • Результат:80баллов,
                          • Очки рейтинга4
                          m
                          • molni99
                          • 26 октября 2024 г. 1:29

                          C++ - Тест 004. Указатели, Массивы и Циклы

                          • Результат:20баллов,
                          • Очки рейтинга-10
                          Последние комментарии
                          i
                          innorwall11 ноября 2024 г. 22:12
                          Django - Урок 055. Как написать функционал auto populate field Freckles because of several brand names retin a, atralin buy generic priligy
                          i
                          innorwall11 ноября 2024 г. 18:23
                          QML - Урок 035. Использование перечислений в QML без C++ priligy cvs 24 Together with antibiotics such as amphotericin B 10, griseofulvin 11 and streptomycin 12, chloramphenicol 9 is in the World Health Organisation s List of Essential Medici…
                          i
                          innorwall11 ноября 2024 г. 15:50
                          Qt/C++ - Урок 052. Кастомизация Qt Аудио плеера в стиле AIMP It decreases stress, supports hormone balance, and regulates and increases blood flow to the reproductive organs buy priligy online safe Promising data were reported in a PDX model re…
                          i
                          innorwall11 ноября 2024 г. 14:19
                          Алгоритм сортировки кучей The role of raloxifene in preventing breast cancer priligy precio
                          i
                          innorwall11 ноября 2024 г. 13:55
                          PyQt5 - Урок 006. Работа с QTableWidget buy priligy 60 mg 53 have been reported by Javanovic Santa et al
                          Сейчас обсуждают на форуме
                          i
                          innorwall11 ноября 2024 г. 20:56
                          добавить qlineseries в функции buy priligy senior brother Chu He, whom he had known for many years
                          i
                          innorwall11 ноября 2024 г. 10:55
                          Всё ещё разбираюсь с кешем. 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
                          9Anonim25 октября 2024 г. 9:10
                          Машина тьюринга // Начальное состояние 0 0, ,<,1 // Переход в состояние 1 при пустом символе 0,0,>,0 // Остаемся в состоянии 0, двигаясь вправо при встрече 0 0,1,>…
                          ИМ
                          Игорь Максимов3 октября 2024 г. 4:05
                          Реализация навигации по разделам Спасибо Евгений!

                          Следите за нами в социальных сетях