Название: Как установить пиктограмму дочернего виджета MDI программы? Отправлено: Wachburn от Март 24, 2010, 13:39 т.е. чтоб у каждого виджета была своя пиктограмма... ато эта пиктограмма почемуто приобретает вид главного окна приложения
Название: Re: Как установить пиктограмму дочернего виджета MDI программы? Отправлено: voronElf от Март 25, 2010, 09:31 каждому виджету вызвать setWindowIcon ( const QIcon & icon ). По умолчанию берется от родителя
Название: Re: Как установить пиктограмму дочернего виджета MDI программы? Отправлено: villager от Март 25, 2010, 11:12 есть нюансы
устанавливать надо у QMdiSubWindow, примерно так Код: mdiarea=QMdiArea() Название: Re: Как установить пиктограмму дочернего виджета MDI программы? Отправлено: voronElf от Март 25, 2010, 11:37 ну да, хорошее уточнение, это часто ускользает из внимания.
Название: Re: Как установить пиктограмму дочернего виджета MDI программы? Отправлено: Wachburn от Март 25, 2010, 12:13 есть нюансы можно еще так написать mdiArea->setWindowIcon(QIcon("")); устанавливать надо у QMdiSubWindow, примерно так Код: mdiarea=QMdiArea() спасибо, так работает но не совсем то, что нужно... у меня несколько (т.е. 4 штуки) окон QDialog, из этих 4 ех окон печатаются бланки разных видов. Мне нужно обозначит эти 4 окошка разными пиктограммами. Когда я делаю вышеприведенный код, то если у меня запущено 2 окошка, то их (всех открытых окон) пиктограммы принимает вид диалога d (либо того диалога, который был запущен последним). Как сделать чтоб они (пиктограммы) на всех окнах были разными? Название: Re: Как установить пиктограмму дочернего виджета MDI программы? Отправлено: voronElf от Март 25, 2010, 12:45 странно, наверное както не так делаешь,
у каждого твоего диалога свой QMdiSubwindow, вот ему то и надо иконки назначать. Каждому QMdiSubwindow ставишь свою иконку, не будут пересекаться. Код: QMdiSubWndow * subWnd = mdiarea.addSubWindow(dlg); Название: Re: Как установить пиктограмму дочернего виджета MDI программы? Отправлено: Wachburn от Март 25, 2010, 13:20 Код: QMdiSubWndow * subWnd = mdiarea.addSubWindow(dlg); ооооо.... вот это самое оно... спасибо Название: Re: Как установить пиктограмму дочернего виджета MDI программы? Отправлено: voronElf от Март 25, 2010, 13:33 о как :o
а что, это разве не один в один сработает ? : Код: mdiarea.addSubWindow(dlg); диалогу родителем mdiArea назначается чтоли, а не субокно ? Название: Re: Как установить пиктограмму дочернего виджета MDI программы? Отправлено: voronElf от Март 25, 2010, 13:42 да вроде нет
тестик заваял, в паренте адрес QMdiSubWindow лежит, все нормально )) Название: Re: Как установить пиктограмму дочернего виджета MDI программы? Отправлено: Wachburn от Март 25, 2010, 16:52 да вроде нет тестик заваял, в паренте адрес QMdiSubWindow лежит, все нормально )) Вот моя функция отображения диалога... она реализована в главном окне приложения Код: void MainWindow::ShowBillForm() Код: billForm->parent()->setWindowIcon(QIcon("....")); Название: Re: Как установить пиктограмму дочернего виджета MDI программы? Отправлено: BRE от Март 25, 2010, 16:57 т.е. у родителя billForm нет функции setWindowIcon()... хотя не могу понять почему Потому, что parent() это:QObject * QObject::parent () const и возвращает он указатель на QObject, у которого действительно нет метода setWindowIcon. Привидение типа все исправит, см: qobject_cast<T>( ... ) Название: Re: Как установить пиктограмму дочернего виджета MDI программы? Отправлено: Kolobok от Март 25, 2010, 17:48 Или воспользоваться этим
Код: QWidget * QWidget::parentWidget () |