Здравствуйте, Igore, Вы писали:
I>b) Используешь QLocale::decimalPoint qApp->keyboardInputLocale() — эту? Неоднозначно.
I>При закрытии программы не было сохранения позиций QWidget.saveGeometry()
Странно, должно быть, посмотрю...
I>Сгруппируй элементы так чтобы пользователь запуская программу мог сразу работать, а не перетаскивать элементы под свое виденье.
Ок, сейчас попробую...
Здравствуйте, Igore, Вы писали:
I>Кхм, 2 монитора, 1-ый 24'', второй 19'', при первом запуске программа по ширине расползлась на 2 монитора. При закрытии программы не было сохранения позиций QWidget.saveGeometry()
Ок, сделал такое. Но как то непонятно оно потом отрабатывает...
1й запуск — ок. Сохранило геометрию. 2й запуск — читаем геометрию — доклеты переколбашены в другом порядке о0
Здравствуйте, Sheridan, Вы писали:
C>>Как раз самостоятельное удаление — это и есть стрельба себе по ногам. Потому что утечки будут всякий раз при возникновении необработанного исключения. S>Необработанное исключение должно подразумевать окошко об ошибке и аварийное завершение программы. Этого у меня тоже, конечно, нет. Но с этой точки зрения утечки — фигня.
Ну это если совсем необработанное. Но может быть так, что в этой функции отрабатывает new, потом возникает исключение, delete не отрабатывает, исключение ловится где-то выше по стеку, программа продолжает работать с утекшим ресурсом.
Здравствуйте, Centaur, Вы писали:
C>Ну это если совсем необработанное. Но может быть так, что в этой функции отрабатывает new, потом возникает исключение, delete не отрабатывает, исключение ловится где-то выше по стеку, программа продолжает работать с утекшим ресурсом.
В любом случае это ошибка, и она требует исправления а не обработки.
Здравствуйте, Sheridan, Вы писали:
S>Здравствуйте, Igore, Вы писали:
I>>Зачем столько вспомогательных GUI классов? Чем стандартные не угодили? Писал бы на qml я бы еще понял, там с этим не всегда хорошо. S>Всмысле? Я беру стандартные и компоную из них нужные мне. Например кнопка с выпадающим списком-табличкой и индикацией выбранного на кнопке.
Я про:
class WImage : public QLabel
class WIcon : public ui::images::WImage, public hacc::CIDItem
class WIconButton : public ui::icons::WIcon // Какой это button, это clickLabel какой тоclass WControlLabel : public QLabel
class WLabelButton : public QLabel
class WStyledWidget : public QWidget
class DProgress : public QDialog// Есть QProgressDialog
Не увидел использования QTableView(QTableWidget) для отображения табличных данных, а это (сортировка, перетаскивание колонок, и т.д. из коробки)
Можно также использовать, QTableView + QItemDelegate::createEditor.
Здравствуйте, Sheridan, Вы писали:
C>>Ну это если совсем необработанное. Но может быть так, что в этой функции отрабатывает new, потом возникает исключение, delete не отрабатывает, исключение ловится где-то выше по стеку, программа продолжает работать с утекшим ресурсом.
S>В любом случае это ошибка, и она требует исправления а не обработки.
Не все исключения суть ошибки, и не все ошибки требуют исправления. В частности, ошибки пользовательского ввода, ошибки прав доступа, ошибки связи с внешними ресурсами могут обнаруживаться где-нибудь внутри, ловиться где-то выше, показываться пользователю — и на следующий виток главного цикла.
I>class WImage : public QLabel
I>class WIcon : public ui::images::WImage, public hacc::CIDItem
I>class WIconButton : public ui::icons::WIcon // Какой это button, это clickLabel какой то
I>class WControlLabel : public QLabel
I>class WLabelButton : public QLabel
I>class WStyledWidget : public QWidget
I>class DProgress : public QDialog// Есть QProgressDialog
I>
Стандартные меня не устраивали. Отнаследовался и реаоизовал нужное. Либо в планах реализовать.
I>Не увидел использования QTableView(QTableWidget) для отображения табличных данных, а это (сортировка, перетаскивание колонок, и т.д. из коробки)
В репе уже закомментировано, ибо действительно не нужно.
I>Можно также использовать, QTableView + QItemDelegate::createEditor.
Можно, но я не разобрался как мне повторить таблевьювом тот функционал, который я на плашках нарисовал
Здравствуйте, Centaur, Вы писали:
C>Здравствуйте, Sheridan, Вы писали:
C>>>Ну это если совсем необработанное. Но может быть так, что в этой функции отрабатывает new, потом возникает исключение, delete не отрабатывает, исключение ловится где-то выше по стеку, программа продолжает работать с утекшим ресурсом.
S>>В любом случае это ошибка, и она требует исправления а не обработки.
C>Не все исключения суть ошибки, и не все ошибки требуют исправления. В частности, ошибки пользовательского ввода, ошибки прав доступа, ошибки связи с внешними ресурсами могут обнаруживаться где-нибудь внутри, ловиться где-то выше, показываться пользователю — и на следующий виток главного цикла.
Верно. Но в данный момент мы разговариваем в контексте "создали объект, да фигня какаято творится". У меня там с этим либо все нормально, либо еще не доделал. В любом случае пользовательский ввод фильтровать конечно надо, ты прав. Но это как бы не на эксцепшенах принято делать... Хотя конечно варианты есть.
C>>Не все исключения суть ошибки, и не все ошибки требуют исправления. В частности, ошибки пользовательского ввода, ошибки прав доступа, ошибки связи с внешними ресурсами могут обнаруживаться где-нибудь внутри, ловиться где-то выше, показываться пользователю — и на следующий виток главного цикла. S>Верно. Но в данный момент мы разговариваем в контексте "создали объект, да фигня какаято творится". У меня там с этим либо все нормально, либо еще не доделал. В любом случае пользовательский ввод фильтровать конечно надо, ты прав. Но это как бы не на эксцепшенах принято делать... Хотя конечно варианты есть.
Пользователь попросил сделать что-нибудь с файлом, на который у него нет прав. На чём, как не на исключениях, это делать?
Здравствуйте, Centaur, Вы писали:
S>>Верно. Но в данный момент мы разговариваем в контексте "создали объект, да фигня какаято творится". У меня там с этим либо все нормально, либо еще не доделал. В любом случае пользовательский ввод фильтровать конечно надо, ты прав. Но это как бы не на эксцепшенах принято делать... Хотя конечно варианты есть.
C>Пользователь попросил сделать что-нибудь с файлом, на который у него нет прав. На чём, как не на исключениях, это делать?
Здравствуйте, Centaur, Вы писали:
C>Пользователь попросил сделать что-нибудь с файлом, на который у него нет прав. На чём, как не на исключениях, это делать?
В данном случае да, исключения пригодятся. И этот случай у меня обработан