Russian Qt Forum
Май 06, 2024, 05:25 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало Форум WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  
  Просмотр сообщений
Страниц: 1 2 [3] 4 5 ... 21
31  Qt / Вопросы новичков / Re: Как в Qt узнать состояние индикаторов Num, Caps и Scroll на клавиатуре? : Апрель 03, 2018, 13:02
Код:
Поиск по инету ничего не дал. 
Плохо искали.

https://stackoverflow.com/a/3006934/797047
https://stackoverflow.com/a/25001688/797047

Qt не предоставляет такого функционала, нужно писать платформо-зависимый код.

Спасибо за ответ. Я так и предполагал, что нужно будет писать платформо-зависимый код.
Просто думал мало ли есть подобные методы и в Qt.
Пишу я под QNX6.6. Спасибо за ссылки на примеры, буду дальше искать как реализовать подобное в нем.
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;}");

Не знаю правда поможет ли это Вам.
37  Qt / Вопросы новичков / Re: Как в Qt задавать атрибуты для файла? : Ноябрь 30, 2016, 09:08
Благодарю за ответ.
38  Qt / Вопросы новичков / Re: Регулярные выражения для проверки ввода i : Ноябрь 23, 2016, 14:16
Есть такая книга:

Ян Гойвертс, Стивен Левитан - Регулярные выражения. Сборник рецептов [2010]

Спасибо, не слышал еще об этой книге.
39  Qt / Вопросы новичков / Re: Регулярные выражения для проверки ввода ip адреса, порта и http прокси? : Ноябрь 23, 2016, 14:15
Всем спасибо за ответы. Воспользовался этой ссылкой http://a-panov.ru/регулярные-выражения-проверка-ip-на-кор/
С ip помогло, по аналогии сделал и для порта.
Всем спасибо за ответы.
40  Qt / Вопросы новичков / Re: Регулярные выражения для проверки ввода i : Ноябрь 23, 2016, 12:12
А к чему уязвимы?

Пропускают неверный ввод. К примеру дают возможность ввести некорректный ip адрес.
41  Qt / Вопросы новичков / Регулярные выражения для проверки ввода ip адреса, порта и http прокси? : Ноябрь 22, 2016, 16:35
Добрый день, господа форумчане.
Задался тут вопросом верного задания регулярных выражений для проверки ввода ip адреса, порта и http прокси.
Пока нашел примеры только по регулярным выражениям для проверки ip. Но в основном все они уязвимы.
Может кто-то уже искал подобную инфу, и сможет поделится информацией.
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). Но пока мои попытки закончились неудачей.(

Может кто сможет что-то подсказать по этому поводу?
Страниц: 1 2 [3] 4 5 ... 21

Страница сгенерирована за 0.056 секунд. Запросов: 23.