
qml_puthon_userDec. 5, 2019, 2:27 p.m.
подобие TabControl на qml
Доброго времени суток.
Пытаюсь реализовать отображение панелей (Pane) по нажатию лейблов(кнопок) на основной форме.
Код основной формы:
import QtQuick 2.12 import QtQuick.Controls 2.12 import QtQuick.Layouts 1.3 import "./Components/Panels" as Panels ApplicationWindow { id: general_win visible: true width: 800 height: 600 title: qsTr("Test title") Rectangle { color: "yellow" id: mainwindow anchors.top: parent.top anchors.left: parent.left anchors.right: parent.right anchors.bottom: parent.bottom Panels.Panel_menu { id: p_men } Panels.Panel_top { id: p_t anchors.left: p_men.right } Panels.Panel_1 { anchors.top: p_t.bottom anchors.left: p_men.right } Panels.Panel_2 { anchors.top: p_t.bottom anchors.left: p_men.right } } }
Код панели меню:
import QtQuick 2.12 import QtQuick.Controls 2.12 import QtQuick.Layouts 1.3 Pane { id: panel_menu width: 270 height: 480 padding: 0 Rectangle { width: panel_menu.width height: panel_menu.height color: "green" Column { id: column x: 0 y: 0 width: panel_menu.width height: general_win.height Label { id: lbl_p1 width: panel_menu.width height: 50 text: qsTr("Panel_1") verticalAlignment: Text.AlignVCenter horizontalAlignment: Text.AlignHCenter color: "#ffffff" background: Rectangle { id: lbl_p11 color: "#2d343d" } MouseArea { id: mouseArea_1 x: 0 y: 25 anchors.fill: lbl_p11 hoverEnabled: true onEntered: lbl_p11.color = "#289ed7" onExited: lbl_p11.color = "#2d343d" onClicked: { Panel_1.visible = true Panel_2.visible = false } } } Label { id: lbl_2 width: panel_menu.width height: 50 text: qsTr("Panel_2") verticalAlignment: Text.AlignVCenter horizontalAlignment: Text.AlignHCenter color: "#ffffff" background: Rectangle { id: lbl_22 color: "#2d343d" } MouseArea { id: mouseArea_2 x: 0 y: 25 anchors.fill: lbl_2 hoverEnabled: true onEntered: lbl_22.color = "#289ed7" onExited: lbl_22.color = "#2d343d" onClicked: { Panel_1.visible = false Panel_2.visible = true } } } } } }
Код Panel_1:
import QtQuick 2.12 import QtQuick.Controls 2.12 import QtQuick.Layouts 1.3 Pane { id: p1 x: 170 y: 35 width: 470 height: 445 padding: 0 visible: true anchors.top: Panel_top.bottom anchors.left: Panel_menu.right anchors.right: mainwindow.right anchors.bottom: mainwindow.bottom Rectangle { id: p1_content width: p1.width height: p1.height color: "#EB1EA6" Label { text: qsTr("Panel_1") } } }
Код Panel_2:
import QtQuick 2.12 import QtQuick.Controls 2.12 import QtQuick.Layouts 1.3 Pane { id: p2 x: 170 y: 35 width: 470 height: 445 padding: 0 visible: false anchors.top: Panel_top.bottom anchors.left: Panel_menu.right anchors.right: mainwindow.right anchors.bottom: mainwindow.bottom Rectangle { id: p2_content width: p2.width height: p2.height color: "#92D161" Label { text: qsTr("Panel_2") } } }
Обработчик нажатий у меня реализован в Panel_menu. Когда кликаю на lbl_p1, по идее, Panel_1 должна отобразиться, а Panel_2 оставаться скрытой и когда кликаю на lbl_p2, наоборот, Panel_1 должна скрыться, а Panel_2 отобразиться.
Мне нужно как-то передать событие onClicked с Panel_menu в главную форму? Или на главной форме делать обработчик onClicked? Или есть что-то попроще и получше?
Спасибо!

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!
Ua
- Unknown akadamn
- Jan. 24, 2025, 5:14 p.m.
Qt - Test 001. Signals and slots
- Result:84points,
- Rating points4
Ua
- Unknown akadamn
- Jan. 24, 2025, 4:22 p.m.
Qt - Test 001. Signals and slots
- Result:42points,
- Rating points-8
Last comments
ИМ
Django - Tutorial 017. Customize the login page to Django Добрый вечер Евгений! Я сделал себе авторизацию аналогичную вашей, все работает, кроме возврата к предидущей странице. Редеректит всегда на главную, хотя в логах сервера вижу запросы на правильн…
Игорь МаксимовNov. 22, 2024, 9:51 p.m.

Evgenii LegotckoiOct. 31, 2024, 11:37 p.m.
Fb3 file reader on Qt Creator Подскажите как это запустить? Я не шарю в программировании и кодинге. Скачал и установаил Qt, но куча ошибок выдается и не запустить. А очень надо fb3 переконвертировать в html
ИМ
Django - Lesson 064. How to write a Python Markdown extension Приветствую Евгений! У меня вопрос. Можно ли вставлять свои классы в разметку редактора markdown? Допустим имея стандартную разметку: <ul> <li></li> <li></l…
Игорь МаксимовOct. 5, 2024, 4:51 p.m.
QML - Lesson 016. SQLite database and the working with it in QML Qt Здравствуйте, возникает такая проблема (я новичок): ApplicationWindow неизвестный элемент. (М300) для TextField и Button аналогично. Могу предположить, что из-за более новой верси…
Now discuss on the forum
f
Рисование на QGraphicsScene при зажатой кнопке мыши Подскажите, пожалуйста! Как данный класс можно дополнить, чтобы созданные объекты можно было перемещать мышкой по сцене?
firstlunoxodFeb. 15, 2025, 1:46 p.m.

ДмитрийFeb. 3, 2025, 4:24 p.m.
не запускается компьютер!!! Не запускается компьютер (точнее работает блок , но сам монитор вообще жесть)В общем я ничего с интернета не скачивала в последнее время. На компе никаких левых пр…
Нужно запретить перемещение только некоторых итемов, остальные перемещать можно. Вопрос решен. Узнать QModelIndex элемента на который мы перетаскиваем другой элемент, можно с помощью функции indexAt(event->position().toPoint()) представления QTreeViev вызываемой в переопр…
OAuth2.0 через VK, получение email Спасибо большое за помощь и простите за то что отнял время своей невнимательностью.
Добрый день.
Изучите вот эту статью - QML - Урок 018. Loader в QML Qt - динамическая работа с компонентами . Там по сути используется нужный вам функционал. Но вам нужно использовать или Loader или StackView, в той статье описывается применение Loader.
Статья немного устарела, но при этом актуальна. Вам нужно только использовать QtQuick 2 в своём коде. Там написано на QtQuick 1. Разница будет только в импортах, а код должен быть одинаковым в обоих случаях.
Вот код, вдруг, кому поможет.
Код основной формы:
Код панели меню:
Код Panel_1:
Код Panel_2: