![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
maint |
![]()
Сообщение
#1
|
![]() Участник ![]() ![]() Группа: Участник Сообщений: 235 Регистрация: 3.8.2009 Из: Иркутск Пользователь №: 982 Спасибо сказали: 28 раз(а) Репутация: ![]() ![]() ![]() |
Обнаружил неприятную вещь в Qt. Если в новом окне QTableView создается по new, то окна остаются активными навсегда (так же не происходит переключение по мыше и не наботают activateNextSubWindows и prew, активация окна не проходит), сколько бы их не было. Если описывать просто, то все нормально. И как с этим бороться не представляю
если в QTableView сделать setParent на создаваемое окно, все возвращается на круги своя. Похоже что QMdiArea и QTableView категорически не хотят дружить. Выхода из положения не вижу. Может у кого есть идеи ? Если вдруг кому покажется интересным могу выложить минимальный проект, собранный из стандартного примера mdi с добавкой вызова окон с QTableView Сообщение отредактировал maint - 17.10.2012, 10:41 |
|
|
Алексей1153 |
![]()
Сообщение
#2
|
![]() фрилансер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2943 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: ![]() ![]() ![]() |
Если описывать просто, - "просто", это как ? Может быть, свойства не те задаёшь в new (попробуй вытащить свойства из "просто" и поглядеть их. Поставь такие же в new) Выхода из положения не вижу если на самом деле глюк, попробуй сделать прослойку из QWidget между QMdiArea и QTableView проект давай, конечно же |
|
|
RazrFalcon |
![]()
Сообщение
#3
|
![]() Zombie Mod ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: ![]() ![]() ![]() |
Не совсем понял в чем проблема, давай проектик.
Но когда-то tableView я MDI точно вставлял. |
|
|
maint |
![]()
Сообщение
#4
|
![]() Участник ![]() ![]() Группа: Участник Сообщений: 235 Регистрация: 3.8.2009 Из: Иркутск Пользователь №: 982 Спасибо сказали: 28 раз(а) Репутация: ![]() ![]() ![]() |
Не совсем понял в чем проблема, давай проектик. Но когда-то tableView я MDI точно вставлял. выкладываю. Если в файле fbooks.cpp закоментировать строку 34, то все нормально http://maint.mirivlad.ru/download/mdi.rar http://maint.mirivlad.ru/download/mdi.rar да, нажимать надо на "New" Сообщение отредактировал maint - 17.10.2012, 15:04 |
|
|
Алексей1153 |
![]()
Сообщение
#5
|
![]() фрилансер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2943 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: ![]() ![]() ![]() |
ну, как я и предполагал - различны флаги окна (а вот почему - вопрос открытый)
а именно, отличие во флаге Qt::Window если его доставить вручную, то поведение окон такое же, как при закомментированной строке 34
ещё глюк попутно нашёл - если попытаться открыть один из файлов png кнопкой панели инструментов, то программа падает ) |
|
|
maint |
![]()
Сообщение
#6
|
![]() Участник ![]() ![]() Группа: Участник Сообщений: 235 Регистрация: 3.8.2009 Из: Иркутск Пользователь №: 982 Спасибо сказали: 28 раз(а) Репутация: ![]() ![]() ![]() |
ну, как я и предполагал - различны флаги окна (а вот почему - вопрос открытый) а именно, отличие во флаге Qt::Window если его доставить вручную, то поведение окон такое же, как при закомментированной строке 34
ещё глюк попутно нашёл - если попытаться открыть один из файлов png кнопкой панели инструментов, то программа падает ) так в том то и хохма, что без видимого QTableView, теряется смысл. Может и падать, я собрал минимально возможный проект из стандартного примера и своего куска особо остальным не заморачиваясь, что бы понять где мог ошибиться. |
|
|
Алексей1153 |
![]()
Сообщение
#7
|
![]() фрилансер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2943 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: ![]() ![]() ![]() |
во! Нашёл
в общем, всё оставляй, как у тебя есть (только смотри примечание в конце сообщения) но в fBooks::fBooks(int w, int h, QString title) перед resize(w, h); добавь
--------------- *примечание, чистое ИМХО члены-переменные лучше объявлять в виде указателей и создавать их через new в конструкторе. А то можно перегрузить стек ненароком, ведь неизвестно, сколько чего лежит в классе. Кроме того, удобнее задавать родителя - через конструктор Сообщение отредактировал Алексей1153 - 17.10.2012, 19:27 |
|
|
![]() ![]() ![]() |
![]() |
|
Текстовая версия | Сейчас: 29.4.2025, 1:43 |