Приобрести книгу можно на сайте ozon.ru и в электронном виде на Google Play:
8 thoughts on “Глава 35 – Рабочий стол”
Макс, здравствуйте!
В коде программы SystemTray при создании объектов действий (QAction) Вы используете указатель на объект this, в предыдущей главе в приложении MDI вы вместо указателя писали 0. Почему так и в чем различие этих способов создания “экшенов”?
Здравствуйте, Вячеслав!
Класс QWidget содержит метод addAction(QAction*) поэтому если мы укажем в MDI программе вместо 0 this, то объекты QAction будут визуально отображенны не в QMenu, а в самом виджете MDIProgram (листинг 34.11). В случае с виджетом SystemTray мы хотим чтобы объекты QAction визуально отобразились в нем поэтому передаем указатель this, виджета SystemTray (листинг 35.3).
Уважаемый Макс!
В новом издании своей книги уделите внимание комментариям своих кодов, которые можно скачать с сайта. Иногда при разборе кода этого очень не хватает, да и таким образом неопытным программистам, вроде меня, будет прививаться культура написания кода программы. Я думаю, со мной многие Ваши читатели согласятся, т.к. в книге не все действия комментируются…
И, по-моему, было бы неплохо, если бы Вы использовали созданные ранее свои классы в последующих примерах, наследуя от них (как в классе MDIProgram). Таким образом можно было наглядно показать, почему некоторые элементы являются членами класса, а другие создаются, либо в конструкторе, либо в одном из методов, как вспомогательные элементы класса…
Я умышленно старался этого избегать этого, для того чтобы сделать каждую главу самодостаточной и независимой от других глав. Это дает, на мой взгляд, возможность читать книгу практически с любой главы. Хоть этого конечно полностью избежать не удалось, все таки я стремился свести этот эффект к минимуму. А так пришлось бы очень часто ссылатся на другие главы и отсылать читателя на них для ознакомления к созданным классам из прошлых глав. Тем не менее, Вячеслав, спасибо большое за идею!
Макс, здравствуйте!
В коде программы SystemTray при создании объектов действий (QAction) Вы используете указатель на объект this, в предыдущей главе в приложении MDI вы вместо указателя писали 0. Почему так и в чем различие этих способов создания “экшенов”?
Здравствуйте, Вячеслав!
Класс QWidget содержит метод addAction(QAction*) поэтому если мы укажем в MDI программе вместо 0 this, то объекты QAction будут визуально отображенны не в QMenu, а в самом виджете MDIProgram (листинг 34.11). В случае с виджетом SystemTray мы хотим чтобы объекты QAction визуально отобразились в нем поэтому передаем указатель this, виджета SystemTray (листинг 35.3).
Всё понял, спасибо!
Уважаемый Макс!
В новом издании своей книги уделите внимание комментариям своих кодов, которые можно скачать с сайта. Иногда при разборе кода этого очень не хватает, да и таким образом неопытным программистам, вроде меня, будет прививаться культура написания кода программы. Я думаю, со мной многие Ваши читатели согласятся, т.к. в книге не все действия комментируются…
Спасибо Вячеслав за замечательную идею! Я обязательно подумаю!
И, по-моему, было бы неплохо, если бы Вы использовали созданные ранее свои классы в последующих примерах, наследуя от них (как в классе MDIProgram). Таким образом можно было наглядно показать, почему некоторые элементы являются членами класса, а другие создаются, либо в конструкторе, либо в одном из методов, как вспомогательные элементы класса…
Я умышленно старался этого избегать этого, для того чтобы сделать каждую главу самодостаточной и независимой от других глав. Это дает, на мой взгляд, возможность читать книгу практически с любой главы. Хоть этого конечно полностью избежать не удалось, все таки я стремился свести этот эффект к минимуму. А так пришлось бы очень часто ссылатся на другие главы и отсылать читателя на них для ознакомления к созданным классам из прошлых глав. Тем не менее, Вячеслав, спасибо большое за идею!
Макс, я Вас понял. Спасибо за ответ!