Все посты в блоге «Qt»

Информация о блоге «Qt»

О программировании с использованием фреймворка Qt.
Постов в блоге: 4
Читателей: 1

Посты 1 — 4 из 4

В начало Предыдущая страница 1 Следующая страница В конец
QtЗапретить изменение значения ячейки QTableWidgetItem
Например, чтобы заблокировать ввод текста в нулевой столбец нулевой строки tableWidget:

  1. ui->tableWidget->item(0,0)->setFlags(ui->tableWidget->item(0,0)->flags() & ~Qt::ItemIsEditable);
QtОтключение оптимизации компилятора
Для отключения оптимизации компилятора нужно вставить в .pro файл (файл проекта Qt) следующий код:

  1. #отключение оптимизации компилятора
  2. #OPTIMIZE += 0 #no optimization
  3. #OPTIMIZE += 1 #code size, execution time
  4. #OPTIMIZE += 2 #code size, exectuion time, performance of generated code
  5. #OPTIMIZE += 3 #as 2 and some more
  6. #OPTIMIZE += s #only size code optimization
  7. OPTIMIZE += 0
  8.  
  9. CONFIG(release, debug|release){
  10. !isEmpty(OPTIMIZE) {
  11. *-g++*{
  12. OPT += -O
  13. QMAKE_CFLAGS_RELEASE ~= s,-O.,$$join(OPT,,, $${OPTIMIZE}),
  14. QMAKE_CXXFLAGS_RELEASE ~= s,-O.,$$join(OPT,,, $${OPTIMIZE}),
  15. QMAKE_OBJECTIVE_CFLAGS_RELEASE ~= s,-O.,$$join(OPT,,, $${OPTIMIZE}),
  16. message(Selected optimization: $${QMAKE_CFLAGS_RELEASE})
  17. }
  18. }
  19. }
QtКодировка
Для избавления от проблем с кодировками (и, как следствие, кракозяблами вместо русских букв), необходимо вручную указать с какой именно из кодировок мы будем работать. Я предпочитаю UTF-8.
Для этого нужно подключить:
  1. #include <QTextCodec>


И в функцию main вставить следующий код:
  1. // set codecs
  2. QTextCodec *cyrillicCodec = QTextCodec::codecForName("UTF8"/*"CP1251"*/);
  3. QTextCodec::setCodecForTr(cyrillicCodec);
  4. QTextCodec::setCodecForLocale(cyrillicCodec);
  5. QTextCodec::setCodecForCStrings(cyrillicCodec);


При этом следует иметь ввиду, что сами файлы с исходным кодом проекта тоже должны быть в кодировке UTF-8.
QtЦентрировать окно
Функция для отображения окна по центру экрана:

  1. #include <QDesktopWidget> // for move window to center
  2.  
  3. void MainWindow::moveWindowToCenter()
  4. {
  5. QRect frect = frameGeometry();
  6. frect.moveCenter(QDesktopWidget().availableGeometry().center());
  7. move(frect.topLeft());
  8. }


Использовать можно, например, в конструкторе формы:

  1. MainWindow::MainWindow(QWidget *parent) :
  2. QMainWindow(parent),
  3. ui(new Ui::MainWindow)
  4. {
  5. ui->setupUi(this);
  6. moveWindowToCenter();
  7. }

Посты 1 — 4 из 4

В начало Предыдущая страница 1 Следующая страница В конец

© Дорошенко Алексей, 2010 — 2011.

О сайте | Правила | Реклама | Valid XHTML 1.0 Strict