![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
RazrFalcon |
![]()
Сообщение
#1
|
![]() Zombie Mod ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: ![]() ![]() ![]() |
Просто интересно, ради повышения опыта.
Хотелось бы услышать все возможные замечания. Может что то делаю совсем не так, как заведено и тд. Программка довольно простая, банальная смена обоев для Gnome. Просто захотелось довести хоть одну прогу до ума. Собственно код: .pro
main.cpp
wallwindow.cpp
wallwindow.h
Прикрепленные файлы
|
|
|
Алексей1153 |
![]()
Сообщение
#2
|
![]() фрилансер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2944 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: ![]() ![]() ![]() |
Цитата #include <QDialog> #include <QSystemTrayIcon> #include <QDir> #include <QSettings> #include <QtGui> #include <QApplication> #include <QFileDialog> #include <QtDebug> #include <QFile> #include <QProcess> #include <QSystemTrayIcon> #include <QMenu> #include <QAction> #include <QTimer> большую часть этих заголовков можно перенести в wallwindow.cpp код не смотрел, немного некогда, но вот сразу 1)
зачем переменные глобальные ? И number не инициализирован 2) нет комментариев. Жирнющий минус ![]() Сообщение отредактировал Алексей1153 - 19.3.2011, 10:57 |
|
|
Litkevich Yuriy |
![]()
Сообщение
#3
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
WallWindow - наследник QDialog, почему в конструкторе класса не инициализируешь базовый класс? Ты точно понимаешь что происходит?
|
|
|
RazrFalcon |
![]()
Сообщение
#4
|
![]() Zombie Mod ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: ![]() ![]() ![]() |
большую часть этих заголовков можно перенести в wallwindow.cpp Зачем? Точнее почему, так тоже ведь работает.код не смотрел, немного некогда, но вот сразу Глобальные, так как используются не только в одной функции.1)
зачем переменные глобальные? И number не инициализирован Надо будет глянуть. >> И number не инициализирован Нужно что то в духе number=0;? 2) нет комментариев. Жирнющий минус Ну это да, надо на исправить.![]() >>Ты точно понимаешь что происходит? По моему нет ![]() А в чем проблема? Вроде работает. Сообщение отредактировал RazrFalcon - 19.3.2011, 14:27 |
|
|
Алексей1153 |
![]()
Сообщение
#5
|
![]() фрилансер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2944 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: ![]() ![]() ![]() |
Зачем? Точнее почему, так тоже ведь работает. работает. Но, гляжу по содержимому, их присутствие в том файле необязательно, достаточно форвардов. А это значит, что заголовки можно смело перенести в реализацию. Чем меньше левых заголовочников в H файле, тем быстрее компиляция большого проекта, да и глобальная область видимости меньше "замусоривается" левыми определениями (а это частенько помогает избежать запутанных зависимостей между вложенными заголовочниками - когда это действительно бывает необходимо) Глобальные, так как используются не только в одной функции. У тебя же класс ![]() Нужно что то в духе number=0;? лучше так (не надо лепить в одну строчку) int switch_time=60; int row_num=0; int number=0; |
|
|
RazrFalcon |
![]()
Сообщение
#6
|
![]() Zombie Mod ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: ![]() ![]() ![]() |
>>Но, гляжу по содержимому, их присутствие в том файле необязательно, достаточно форвардов.
ээ... это какие именно? Что нужно оставить в хедере, а что перенести в срр? >>Сделай членом класса. Просто перенести в "class WallWindow : public QDialog"? Сообщение отредактировал RazrFalcon - 19.3.2011, 16:41 |
|
|
Алексей1153 |
![]()
Сообщение
#7
|
![]() фрилансер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2944 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: ![]() ![]() ![]() |
RazrFalcon, все, кроме
#include <QDialog> перенеси, а потом компилятор подскажет (но если от класса используется только ссылка или указатель - достаточно только форвард добавить) Просто перенести в "class WallWindow : public QDialog"? ага, туда ) Только инициализацию в конструкторе делать |
|
|
RazrFalcon |
![]()
Сообщение
#8
|
![]() Zombie Mod ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: ![]() ![]() ![]() |
Сделал.
В хедере остались только: И все.
|
|
|
Алексей1153 |
![]()
Сообщение
#9
|
![]() фрилансер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2944 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: ![]() ![]() ![]() |
#include <QSettings>
#include <QFileDialog> - тоже в заголовке не требуются вроде ![]() немного глянул код. Без комментариев мало что сказать можно, разве что не всегда удобное форматирование. Но вот один момент явно не нравится:
переменная имеет тип QSystemTrayIcon::ActivationReason , а сравниваешь с цифрами-константами, хотя там НАВЕРНЯКА есть именованные константы |
|
|
RazrFalcon |
![]()
Сообщение
#10
|
![]() Zombie Mod ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: ![]() ![]() ![]() |
И в правду есть
![]()
>>тоже в заголовке не требуются вроде Нужно для: QSettings *settings; и QFileInfoList, QFileInfo Сообщение отредактировал RazrFalcon - 19.3.2011, 18:59 |
|
|
![]() ![]() |
![]() |
|
Текстовая версия | Сейчас: 15.7.2025, 18:49 |