Просмотр сообщений
|
Страниц: 1 2 [3] 4 5 ... 21
|
32
|
Qt / Вопросы новичков / Как в Qt узнать состояние индикаторов Num, Caps и Scroll на клавиатуре?
|
: Апрель 03, 2018, 12:05
|
Добрый день, господа форумчане. Снова вынужден обращаться к Вам за помощью и советом.
Пишу тест клавиатуры. Проверку клавиш уже реализовал, пользуясь event->nativeScanCode(). В своей форме кроме клавиш клавиатуры отобразил и индикаторы: Num, Caps и Scroll. Теперь вот хочу реализовать их свечение и затухание. Но беда в том, что их состояние нужно наверное как-то получать из системы. Поиск по инету ничего не дал.
Может кто-то подскажет в какую сторону мне копать? Каким образом програмно можно узнать состояние индикаторов клавиатуры Num, Caps и Scroll?
|
|
|
33
|
Qt / Вопросы новичков / Re: Есть ли обновление содержимого у QFileSystemModel?
|
: Июнь 22, 2017, 10:52
|
Хотя, если я удаляю и создаю файлы на флешке через проводник, то в своем созданном окне эти изменения видны. Но если я к примеру вставил флешку в свой комп, в своем созданном окне вижу список каталогов. Потом извлекаю эту флешку, вставляю в другой комп, удаляю на ней файл. То при повторном подсоединении ее в первый компьютер, в моем созданном окне еще отображается удаленный мной файл на этой флешке.
|
|
|
34
|
Qt / Вопросы новичков / Есть ли обновление содержимого у QFileSystemModel?
|
: Июнь 22, 2017, 09:59
|
Здравствуйте, господа форумчаны. Столкнулся на днях с одной небольшой проблемой. Я пишу окно для копирования файлов с флешки на жесткий диск, а также удаление файлов с диска. Для отображения дерева каталогов использую QFileSystemModel. Создаю его в конструкторе своего окна: model = new QFileSystemModel(); model->setHeaderData(0, Qt::Horizontal, tr("Имя"), Qt::DisplayRole); model->setHeaderData(1, Qt::Horizontal, tr("Размер"), Qt::DisplayRole); model->setHeaderData(2, Qt::Horizontal, tr("Тип"), Qt::DisplayRole); model->setHeaderData(3, Qt::Horizontal, tr("Дата изменения"), Qt::DisplayRole);
Далее при каждом подсоединении флешки, подгружаю данную модель в QTreeView. Также указываю какой каталог будет корневым. treeView->setModel(model); treeView->setRootIndex(model->setRootPath(root_usb));
При извлечении флешки, делаю следующее: treeView->setModel(NULL);
Заметил одну вещь. Если открыть мое окно, вставить флешку - то отображается дерево каталогов флешки. Далее, если не закрывая окно, извлечь флешку - то дерево как и задумано уже не отображается. Но если же потом снова вставить уже другую флешку - то отображается дерево каталогов предыдущей флешки, а не вставленной на данный момент. Понимаю что нужно как-то обновить содержимое каталога флешки в QFileSystemModel. Но как это сделать пока не нашел. Может, кто знает как? Каждый раз создавать экземпляр QFileSystemModel при подсоединении флешки, и удалять его при ее извлечении не хотелось бы. Пока что у меня вот только так и получается избавится от данной проблемы.
|
|
|
35
|
Qt / Вопросы новичков / Почему margin в стиле QWidget влияет на работу QScrollBar?
|
: Май 05, 2017, 09:26
|
Здравствуйте, господа форумчане. Столкнулся на днях я с одной ситуацией. При большом количестве QTreeWidgetItem-ов в QTreeWidget-е переставал нормально работать QScrollBar. При захватывании курсором мыши ползунка в QScrollBar и попытке протаскать его для прокрутки списка в QTreeWidget-е, ползунок очень медленно двигался или почти не двигался. Искал решение данной проблемы очень долго. А в результате, оказалось, что я задал для всех QWidget-ов в стиле все свойства margin в 0px. А так как для QScrollBar-а стиль я не указывал, он унаследовал все свойства margin от QWidget. Попробую на примере отобразить Вам данную ситуацию. Вот исходный текст: main.cpp #include "mainwindow.h" #include <QApplication>
int main(int argc, char *argv[]) { QApplication a(argc, argv); MainWindow w; w.show();
a.setStyleSheet("QWidget {margin-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px;}"); // виной всему был этот стиль // если его убрать, то прокрутка ползунка в QScrollBar будет работать нормально, // или если после него задать стиль для QScrollBar указав для него все margin.
return a.exec(); }
mainwindow.h #ifndef MAINWINDOW_H #define MAINWINDOW_H
#include <QMainWindow>
namespace Ui { class MainWindow; }
class MainWindow : public QMainWindow { Q_OBJECT
public: explicit MainWindow(QWidget *parent = 0); ~MainWindow();
private: Ui::MainWindow *ui; };
#endif // MAINWINDOW_H
mainwindow.cpp #include "mainwindow.h" #include "ui_mainwindow.h"
MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this);
int count = 1000;
QStringList list_headers; list_headers << "1i" << "2i" << "3i"; ui->tree_wgt->setHeaderLabels(list_headers);
QTreeWidgetItem *tree_item[count];
for(int i=0; i<count; i++) { tree_item[i] = new QTreeWidgetItem(); tree_item[i]->setText(0, "1" + QString::number(i+1)); tree_item[i]->setText(1, "2" + QString::number(i+1)); tree_item[i]->setText(2, "3" + QString::number(i+1));
ui->tree_wgt->addTopLevelItem(tree_item[i]); }
connect(ui->exit_but, SIGNAL(clicked(bool)), qApp, SLOT(quit())); }
MainWindow::~MainWindow() { delete ui; }
Может кто-то сталкивался с подобной ситуацией. У кого какие мысли по этому поводу? Вот исходники примера приложения.
|
|
|
36
|
Qt / Вопросы новичков / Re: QT Creator: как изменить цвет текста RadioButton?
|
: Май 05, 2017, 08:42
|
Есть и другое решение. Записать в переменную QString уже имеющий StyleSheet для QRadioButton, и потом прибавить к нему новый цвет текста. К примеру этот кусок текста у меня сработал. ui->radioButton->setStyleSheet("QRadioButton{background: yellow; color: green;}"); QString str = ui->radioButton->styleSheet(); ui->radioButton->setStyleSheet(str + "QRadioButton{color: red;}");
Не знаю правда поможет ли это Вам.
|
|
|
42
|
Qt / Вопросы новичков / Re: Как в Qt задавать атрибуты для файла?
|
: Октябрь 19, 2016, 09:47
|
Спасибо всем за ответы. Для QNX получилось изменить дату создания и последней модификации файла через utime. Теперь бы еще понять как в Windows это реализовать. Знаю что нужно использовать WinAPI. Но вот метода подобного utime не нашел пока.
|
|
|
43
|
Qt / Вопросы новичков / Re: Как в Qt задавать атрибуты для файла?
|
: Октябрь 13, 2016, 09:10
|
Скорее всего, для этого придётся написать платформозависимый код.
Благодарю за ответ. Буду копать в этом направлении. Для UNIX систем есть функция untime. Сейчас почитаю может она мне поможет. Ну и загляну в WinAPI.
|
|
|
44
|
Qt / Вопросы новичков / Как в Qt задавать атрибуты для файла?
|
: Октябрь 11, 2016, 16:22
|
Добрый день! На днях у меня появилась необходимость задать для создаваемого файла атрибут "Дату последнего изменения файла". Но пока так и нечего не нашел по этому поводу. Посмотреть эту дату можно через QFileInfo(file_path).lastModified(). А вот как задать ее в атрибуты файла не знаю? Может кто чем-то подскажет. Буду рад любой полезной информации.
|
|
|
45
|
Qt / Вопросы новичков / Как менять положение курсора в QTextBrowser?
|
: Август 28, 2016, 21:40
|
Добрый вечер, господа. Разбираюсь тут я с виджетом QTextBrowser. Загрузил в него html страницу и реализовал поиск по ней, выделив все найденные слова зеленным цветом. Вот метод поиска слов: void searchText(QString str) { QList<QTextEdit::ExtraSelection> select; ui->textBrowser->moveCursor(QTextCursor::Start);
int i=0; while(ui->textBrowser->find(str, NULL)) { QTextEdit::ExtraSelection extra_sel; extra_sel.format.setBackground(QColor(Qt::green)); extra_sel.cursor = ui->textBrowser->textCursor();
select.append(extra_sel); i++; } ui->textBrowser->setExtraSelections(select); }
Теперь вот добавил еще кнопки "Вперед" и "Назад", чтобы была возможность ходить по найденным словам. Но как это реализовать пока не знаю. Предполагаю, что нужно менять позицию курсора(наверное нужно для этих целей пользоваться классом QTextCursor). Но пока мои попытки закончились неудачей.( Может кто сможет что-то подсказать по этому поводу?
|
|
|
|
|