t
tettaМамыр 19, 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, 11: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, 1:58 Т.Қ.

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

                  t
                  • Мамыр 21, 2017, 2:23 Т.Қ.

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

                    t
                    • Мамыр 21, 2017, 2:56 Т.Қ.

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

                      t
                      • Мамыр 21, 2017, 2:58 Т.Қ.

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

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

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

                          Пікірлер

                          Тек рұқсаты бар пайдаланушылар ғана пікір қалдыра алады.
                          Кіріңіз немесе Тіркеліңіз
                          Г

                          C++ - Тест 001. Первая программа и типы данных

                          • Нәтиже:66ұпай,
                          • Бағалау ұпайлары-1
                          t

                          C++ - Тест 001. Первая программа и типы данных

                          • Нәтиже:33ұпай,
                          • Бағалау ұпайлары-10
                          t

                          Qt - Тест 001. Сигналы и слоты

                          • Нәтиже:52ұпай,
                          • Бағалау ұпайлары-4
                          Соңғы пікірлер
                          G
                          GoattRockҚыр. 3, 2024, 1:50 Т.Қ.
                          Linux жүйесінде файлдарды қалай көшіруге болады Задумывались когда-нибудь о том, как мы привыкли доверять свои вещи службам грузоперевозок? Сейчас такие услуги стали неотъемлемой частью нашей жизни, особенно когда речь идет о переездах между …
                          d
                          dblas5Шілде 5, 2024, 11:02 Т.Ж.
                          QML - Сабақ 016. SQLite деректер қоры және онымен QML Qt-та жұмыс істеу Здравствуйте, возникает такая проблема (я новичок): ApplicationWindow неизвестный элемент. (М300) для TextField и Button аналогично. Могу предположить, что из-за более новой верси…
                          k
                          kmssrАқп. 8, 2024, 6:43 Т.Қ.
                          Qt Linux - Сабақ 001. Linux астында Autorun Qt қолданбасы как сделать автозапуск для флэтпака, который не даёт создавать файлы в ~/.config - вот это вопрос ))
                          АК
                          Анатолий КононенкоАқп. 5, 2024, 1:50 Т.Ж.
                          Qt WinAPI - Сабақ 007. Qt ішінде ICMP Ping арқылы жұмыс істеу Без строки #include <QRegularExpressionValidator> в заголовочном файле не работает валидатор.
                          Енді форумда талқылаңыз
                          Evgenii Legotckoi
                          Evgenii LegotckoiМаусым 24, 2024, 3:11 Т.Қ.
                          добавить qlineseries в функции Я тут. Работы оень много. Отправил его в бан.
                          F
                          FynjyШілде 22, 2024, 4:15 Т.Ж.
                          при создании qml проекта Kits есть но недоступны для выбора Поставил Qt Creator 11.0.2. Qt 6.4.3 При создании проекта Qml не могу выбрать Kits, они все недоступны, хотя настроены и при создании обычного Qt Widget приложения их можно выбрать. В чем может …
                          BlinCT
                          BlinCTМаусым 25, 2024, 1 Т.Ж.
                          Нарисовать кривую в qml Всем привет. Имеется Лист листов с тосками, точки получаны интерполяцией Лагранжа. Вопрос, как этими точками нарисовать кривую? ChartView отпадает сразу, в qt6.7 появился новый элемент…
                          BlinCT
                          BlinCTМамыр 5, 2024, 5:46 Т.Ж.
                          Написать свой GraphsView Всем привет. В Qt есть давольно старый обьект дял работы с графиками ChartsView и есть в 6.7 новый но очень сырой и со слабым функционалом GraphsView. По этой причине я хочу написать х…
                          Evgenii Legotckoi
                          Evgenii LegotckoiМамыр 2, 2024, 2:07 Т.Қ.
                          Мобильное приложение на C++Qt и бэкенд к нему на Django Rest Framework Добрый день. По моему мнению - да, но то, что будет касаться вызовов к функционалу Андроида, может создать огромные трудности.

                          Бізді әлеуметтік желілерде бақылаңыз