crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

3 страниц V  < 1 2 3 >  
Ответить в данную темуНачать новую тему
> Qt3.3 - как создать два QStatusBar, на форме из дезайнера.
Litkevich Yuriy
  опции профиля:
сообщение 24.10.2009, 16:01
Сообщение #11


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


:)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
myr
  опции профиля:
сообщение 25.10.2009, 13:52
Сообщение #12


Студент
*

Группа: Участник
Сообщений: 37
Регистрация: 4.9.2009
Из: С-Пб
Пользователь №: 1052

Спасибо сказали: 0 раз(а)




Репутация:   0  


Все поглумились?


А как получить доступ к тому виджету в которое выводяться системные сообщения?
Если я свои лайблы с текстом добавляю в лайоут, текст не виден.
Если лайблы прямо на scroll добавлять текст виден, но перекрываются системные сообщения.
сейчас свои добавляю аккруратно справа, и их видно и текст видно и системные видно, но это -ведь не совсем корректно.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kwisp
  опции профиля:
сообщение 25.10.2009, 22:48
Сообщение #13


астарожна ынтжинэр
*****

Группа: Участник
Сообщений: 1404
Регистрация: 26.11.2008
Из: ТаганрогРодинаЧехова
Пользователь №: 435

Спасибо сказали: 113 раз(а)




Репутация:   23  


Цитата(myr @ 25.10.2009, 13:52) *
А как получить доступ к тому виджету в которое выводяться системные сообщения?

та не обращай внимания это никто не глумится.
вот прочти что ты написал.
получается виджет это ОНО!

если по существу.
как я понял ты хочешь получить доступ к окну с системными сообщениями? правильно?
можешь подробнее описать?

Сообщение отредактировал kwisp - 25.10.2009, 22:49
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
myr
  опции профиля:
сообщение 27.10.2009, 16:23
Сообщение #14


Студент
*

Группа: Участник
Сообщений: 37
Регистрация: 4.9.2009
Из: С-Пб
Пользователь №: 1052

Спасибо сказали: 0 раз(а)




Репутация:   0  


У меня есть форма, созданная как MainForm.
Я ее наследую.
При наведении курсором на пункты меню и кнопки toolbar, в statusbar выводяться сообщения-подсказки "открыть файл" и. т. д. и сообщения которые выводяться функцией statusBar()->message("q").
Для работы мне нужно разделить statusbar на несколько секций.
1. Добавить к statusbar несколько элементов label. -> Сообщения-подсказки затираються.
2. Если создать свой layout и добавить к statusbar - ошибка - у statusbar уже есть layout.
3. Если statusBar()->layout() - что дальше?. Это виртуальная функция. Добавить widget c помощью add()- текст не выводится.

?? 2 строчный statusbar как создать?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Kagami
  опции профиля:
сообщение 27.10.2009, 18:39
Сообщение #15


Старейший участник
****

Группа: Участник
Сообщений: 601
Регистрация: 2.2.2009
Пользователь №: 523

Спасибо сказали: 101 раз(а)




Репутация:   9  


Эх... Ты так хочешь сделать?
Эскизы прикрепленных изображений
Прикрепленное изображение
 

Прикрепленные файлы
Прикрепленный файл  TestStatusbar.zip ( 2.09 килобайт ) Кол-во скачиваний: 126
 
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
myr
  опции профиля:
сообщение 28.10.2009, 9:28
Сообщение #16


Студент
*

Группа: Участник
Сообщений: 37
Регистрация: 4.9.2009
Из: С-Пб
Пользователь №: 1052

Спасибо сказали: 0 раз(а)




Репутация:   0  


Примерно как на рисунке, только на QT.
Если по способу Kagami, то сообщения, которые формируються при наведении мышкой на пункт меню - затрутся.

Сообщение отредактировал myr - 28.10.2009, 9:32
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 28.10.2009, 11:44
Сообщение #17


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(myr @ 28.10.2009, 12:28) *
Если по способу Kagami, то сообщения, которые формируються при наведении мышкой на пункт меню - затрутся.
тебе предлагается вариант когда, дополнительные тексты Текст№1 и Текст№2 в отдельных полях находятся. (См. примерKagami)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
myr
  опции профиля:
сообщение 28.10.2009, 12:03
Сообщение #18


Студент
*

Группа: Участник
Сообщений: 37
Регистрация: 4.9.2009
Из: С-Пб
Пользователь №: 1052

Спасибо сказали: 0 раз(а)




Репутация:   0  


Хорошо.
Если статус бар укладываеться в 1 строку, то все получаеться, я писала, если аккуратно справа расположить label-ы, то все хорошо.
А мне нужен statusbar 2 этажный!!!


Сообщение отредактировал myr - 28.10.2009, 12:04
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
BRE
  опции профиля:
сообщение 28.10.2009, 12:16
Сообщение #19


Профессионал
*****

Группа: Участник
Сообщений: 1112
Регистрация: 6.3.2009
Из: Ростов-на-Дону
Пользователь №: 591

Спасибо сказали: 264 раз(а)




Репутация:   44  


Цитата(myr @ 28.10.2009, 12:03) *
А мне нужен statusbar 2 этажный!!!

Попробуй сделать фрейм (QFrame), на котором скомпоновать необходимые лэйблы в 2(3) этажа и этот фрейм добавить в statusbar (QStatusBar::addWidget).
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 28.10.2009, 12:38
Сообщение #20


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


myr, дело в том, что тебе нужно в ручную QStatusBar размещать, т.к. QMainWindow расчитан только на один экземпляр.

Цитата(BRE @ 28.10.2009, 15:16) *
и этот фрейм добавить в statusbar (QStatusBar::addWidget)
лучше с помощью addPermanentWidget(), тогда виджет будет постоянным

Вообще выглядит не очень эстетично, но можно и вылизать:
Раскрывающийся текст
MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent), ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    QFrame *frame = new QFrame(this);
    frame->setFrameShadow(QFrame::Raised/*Sunken*/);
    
    QVBoxLayout *l = new QVBoxLayout(frame);
    l->setSpacing(2);
    l->setMargin(0);

    label1 = new QLabel(this);
    label1->setMinimumSize(QSize(50,0));
    label1->setFrameShape(QFrame::StyledPanel);
    label1->setFrameShadow(QFrame::Sunken);    
    l->addWidget(label1);
    
    label2 = new QLabel(this);
    label2->setMinimumSize(QSize(50,0));
    label2->setFrameShape(QFrame::StyledPanel);
    label2->setFrameShadow(QFrame::Sunken);        
    l->addWidget(label2);
    
    frame->setLayout(l);
    

    ui->statusBar->addPermanentWidget(frame);
    
    connect(ui->pushButton, SIGNAL(clicked()), this, SLOT(slot1()));
    connect(ui->pushButton_2, SIGNAL(clicked()), this, SLOT(slot2()));
}
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

3 страниц V  < 1 2 3 >
Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 26.4.2024, 22:49