Russian Qt Forum
Май 15, 2024, 04:35 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: отображение виджетов в панели задач  (Прочитано 6183 раз)
black_engel
Гость
« : Декабрь 01, 2011, 17:29 »

Здравствуйте!

У меня на окне запускаются два виджета.
Проблема: оба виджета отображаются в панели задач виндовс. (решение проблемы через установку свойства Qt::Tool не подходит т.к. мне для данного окна необходимо отображать Сворачивание, Разворачивание и закрытие окна). мне необходимо чтобы эти два виджета в панели задач НЕ отображались. (отображалось только главное окно).
На всякий случай привожу код программы
файл testman.h
Код:
#ifndef TESTMAN_H
#define TESTMAN_H

#include <QtGui/QMainWindow>
#include "ui_testman.h"

class testMan : public QMainWindow
{
Q_OBJECT

public:
testMan(QWidget *parent = 0, Qt::WFlags flags = 0);
~testMan();
QGraphicsView *qtv2;
QGraphicsView *qtv;

private:
Ui::testManClass ui;
};

#endif // TESTMAN_H

файл testman.срр
Код:
#include "testman.h"
#include <QGraphicsView>

testMan::testMan(QWidget *parent, Qt::WFlags flags)
: QMainWindow(parent, flags)
{
ui.setupUi(this);

qtv = new QGraphicsView();
qtv->show();

qtv2 = new QGraphicsView();
qtv2->show();


}

testMan::~testMan()
{

}

файл main.cpp
Код:
#include "testman.h"
#include <QtGui/QApplication>
#include <QWebView>
#include <QTableView>
#include <QTableWidget>
#include <QGraphicsView>

int main(int argc, char *argv[])
{
QApplication a(argc, argv);
testMan *tm = new testMan();
tm->show();



return a.exec();
}

файл testman.ui

Код:
<UI version="4.0" >
 <class>testManClass</class>
 <widget class="QMainWindow" name="testManClass" >
  <property name="objectName" >
   <string notr="true">testManClass</string>
  </property>
  <property name="geometry" >
   <rect>
<x>0</x>
<y>0</y>
<width>600</width>
<height>400</height>
   </rect>
  </property>
  <property name="windowTitle" >
   <string>testMan</string>
  </property>
  <widget class="QMenuBar" name="menuBar" />
  <widget class="QToolBar" name="mainToolBar" />
  <widget class="QWidget" name="centralWidget" />
  <widget class="QStatusBar" name="statusBar" />
 </widget>
 <layoutDefault spacing="6" margin="11" />
 <pixmapfunction></pixmapfunction>
 <resources>
   <include location="testman.qrc"/>
 </resources>
 <connections/>
</UI>
« Последнее редактирование: Декабрь 02, 2011, 10:27 от black_engel » Записан
Bepec
Гость
« Ответ #1 : Декабрь 02, 2011, 06:58 »

Эм, уважаемый. А проблему вы указать не забыли?
Записан
black_engel
Гость
« Ответ #2 : Декабрь 02, 2011, 09:30 »

мне необходимо чтобы эти два виджета в панели задач НЕ отображались. (отображалось только главное окно).
Записан
Bepec
Гость
« Ответ #3 : Декабрь 02, 2011, 09:42 »

Вопрос наводящий: Если вам Qt::Tool не подходит...

Как вы будете разворачивать свернутые окна, если их не будет на панели задач?
Записан
black_engel
Гость
« Ответ #4 : Декабрь 02, 2011, 09:53 »

Вопрос наводящий: Если вам Qt::Tool не подходит...

Как вы будете разворачивать свернутые окна, если их не будет на панели задач?

буду отображать эти окна, нажатием на кнопку одного из меню "главного окна" или нажатием на спец. кнопку в самом окне. Мне Qt::Tool не подходит по той причине, что мне необходимо (по требованию пользователя) разворачивать на весь экран.
Записан
LisandreL
Птица говорун
*****
Offline Offline

Сообщений: 984


Надо улыбаться


Просмотр профиля
« Ответ #5 : Декабрь 02, 2011, 10:00 »

У меня с вашим кодом вообще окон не получилось. Виджеты прямо на главном окне создаются (что логично).
Записан
Bepec
Гость
« Ответ #6 : Декабрь 02, 2011, 10:21 »

Эм. Уважаемый. Вы собираетесь переопределить методы сворачивания/закрытия, и не хотите переопределить метод разворачивания?
Переопределите его, установите кнопку и наслаждайтесь.

PS к тому же есть доп флаги для окон, не пробовали?
Записан
black_engel
Гость
« Ответ #7 : Декабрь 02, 2011, 10:32 »

У меня с вашим кодом вообще окон не получилось. Виджеты прямо на главном окне создаются (что логично).

приношу свои извинения за неправильное содержимое кода (скопировал уже измененные код, в попытке решить проблему): исправил часть кода файла "testman.срр"

Код:
....
qtv = new QGraphicsView();
qtv->show();

qtv2 = new QGraphicsView();
qtv2->show();
        ....

Эм. Уважаемый. Вы собираетесь переопределить методы сворачивания/закрытия, и не хотите переопределить метод разворачивания?
Переопределите его, установите кнопку и наслаждайтесь.

PS к тому же есть доп флаги для окон, не пробовали?

Вы можете привести пример? (для этого необходимо использовать Qt::QTool и еще флаг "разворачивания окна)
Записан
Bepec
Гость
« Ответ #8 : Декабрь 02, 2011, 10:42 »

Флаги на создание окна, не отображающегося в панели задач, но с вашими требованиями.
Код:
Qt::Window
| Qt::WindowMinimizeButtonHint
| Qt::WindowMaximizeButtonHint
| Qt::WindowCloseButtonHint

Если хотите конкретики и кода - c:\Qt\4.7.2\examples\widgets\windowflags\

Спасибо за внимание.
Записан
black_engel
Гость
« Ответ #9 : Декабрь 02, 2011, 11:30 »

Спасибо всем за участие!

Посмотрел  пример, почитал код, посмотрел разницу и внес исправления.
Приведу пример кода может кому пригодиться. С отображением на панели задач 3го из 3х окон, и без отображения на панели задач 2го из 3х окон:

код файла "testman.срр"
Код:
....
        qtv = new QGraphicsView(this);
qtv->setWindowFlags(Qt::Window);///будет отображено окно с кнопками "минимизировать", "развернуть", "закрыть"
qtv->setWindowTitle("Данное окно не отображается на панели задач!");
qtv->show();

qtv2 = new QGraphicsView();
qtv2->setWindowFlags(Qt::Window);///будет отображено окно с кнопками "минимизировать", "развернуть", "закрыть"
qtv2->setWindowTitle("Данное окно будет отображаться на панели задач!");
qtv2->show();
....
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.042 секунд. Запросов: 19.