9 ноября 2019 г. 5:52

PyQt5

QTableWidget, PyQt5

Это будет небольшое обновление урока по использованию QTableWidget в PyQt5

В предыдущем уроке было показано, как вывести какую-то инофрмацию в QTableWidget. А в этом уроке будет показано также, как сделать некоторые ячейки редактируемыми и нередактируемыми, а также как реагировать на нажатия клавиш внутри QTableWidget

Приложение будет выглядеть следующим образом

9 августа 2019 г. 9:16

Дневники разработки

QTableWidget, Qt, xlsx, export

Просмотр наименований топлива.

После обработки запросов на получение наименований, формируем таблицу для отображения информации пользователю.

7 августа 2019 г. 10:41

Дневники разработки

QTableWidget, QThread

Список АЗС с которыми будем производить дальнейшие действия мы получили.
Создаем слот вызываемый при нажатии на CheckBox на на GroupBox Действия.

void FuelNameDialog::on_groupBoxActions_clicked(bool checked)
{
    if(checked){
        //Очищаем список терминалов передаваемых для дальнейшей обработки
        listTerminals.clear();
        //Добавляем отмеченные терминалы в список
        int rowCount = ui->tableWidgetTerm->rowCount();
        for(int i=0; i<rowCount; ++i){
            QWidget *item = ui->tableWidgetTerm->cellWidget(i,0);
            QCheckBox *checkBox = qobject_cast<QCheckBox*>(item->layout()->itemAt(0)->widget());
            if(checkBox->isChecked()){
               listTerminals.append(ui->tableWidgetTerm->item(i,1)->data(Qt::DisplayRole).toInt());
            }
        }
        //Проверяем что список не пустой
        if(listTerminals.size()==0){
            QMessageBox::warning(this, "Ошибка ввода","Нет выбранных терминалов");
            ui->groupBoxActions->setChecked(false);
            return;
        }
    }
    ui->groupBoxFuel->setEnabled(!checked);
}
2 августа 2019 г. 5:28

Дневники разработки

QTableWidget, qcheckbox, QDialog

Диалог изменения наименований топлива.

Внешний вид диалога.

Диалог полностью создавался в Qt Designer.

22 июля 2019 г. 11:57

Дневники разработки

QTableWidgetItem, QAction, QTableWidget, QDialog

Диалог редактирование справочника пользователей

В форме mainwindow.ui добавляем пункт меню Пользователи которому соответвует объект actionUsers. Назначаем ему значок и горячую клавишу.
Создаем Класс формы Qt Designer с именем UsersDialog.
В слоте MainWindow::on_actionUsers_triggered() реализуем вызов диалога Пользователи.

12 июня 2019 г. 9:05

Qt

QPrintPreviewDialog, QTableView, print, QTableWidget, Qt

Доброго времени суток.
Снова в качестве заметки.
Возникла необходимость выводить на печать точную копию содержимого QTableWidget c делегатами и т.д.
Получилось следующее:

17 апреля 2019 г. 3:58
Ruslan Polupan

Qt

Доброго времени суток!

Нужен совет по много поточности. Есть вот такая вот табличка.

Столбец статуc хотелось бы получать в потоке для всех записей (АЗС). Для одной записи я реализовал получение статуса сервера базы данных.

Вопрос в том как делать это для всех з…

19 ноября 2018 г. 7:06
Михаиллл

Qt

Здравствуйте.

У меня есть QTableWidget .

Вот так делаю запрос в SQLite

 QSqlDatabase SearchDB = QSqlDatabase::addDatabase("QSQLITE");    
SearchDB.setDatabaseName("C:\\CVReader\\ResumeArraySQLite.db");
    if (!SearchDB.open()) {qDebug()<<"not open SQL file";}
Q…
B
24 октября 2017 г. 5:36
Betal

Qt

Как внутри строки добавить переход на следующую строку? Я пишу утилитку для чтения лог-файлов и когда добавляю в строку определенный лог, лог идет и с несколькими строчками(т.е. с переходом на новую строку \n).
Внизу скриншот с notepad++. Я хочу сделать так, как там отображается, только Q…

15 марта 2017 г. 13:10

PyQt5

Python, PyQt5, QTableWidget

Для первоначального знакомства с QTableWidget в PyQt5 создадим таблицу с тремя колонками и одной строкой. При наведении мыши на заголовки таблицы будет показываться всплывающее сообщение. Текст в заголовках будет выровнен к левому краю у первой колонки, посередине во второй и справа у третьей колонки. Также размер колонок будет подогнан по содержимому.

Выглядеть таблица будет следующим образом:

Donate

Здравствуйте, уважаемые пользователи EVILEG !!!

Если сайт вам помог, то поддержите разработку сайта финансово, пожалуйста.

Вы можете сделать это следующими способами:

Спасибо, Евгений Легоцкой

SF
27 января 2020 г. 5:10
Sergei Filin

C++ - Тест 001. Первая программа и типы данных

  • Результат:73баллов,
  • Очки рейтинга1
БМ
25 января 2020 г. 13:16
Бекзод Муминов

C++ - Тест 001. Первая программа и типы данных

  • Результат:53баллов,
  • Очки рейтинга-4
БМ
25 января 2020 г. 13:04
Бекзод Муминов

C++ - Тест 004. Указатели, Массивы и Циклы

  • Результат:20баллов,
  • Очки рейтинга-10
Последние комментарии
m
27 января 2020 г. 9:53
michaeldevp

Единственная проблема состоит в том, что для выделения QCheckBox приходится дважны нажимать мышь. Получается что сначала выделяется ячейка. а только потом фокус уже попадает на виджет. …
27 января 2020 г. 1:01
Ruslan Polupan

Да так, посмотрел библиотеку попробовал примеры...
s
26 января 2020 г. 14:51
shame

Чего не webassembly?
21 января 2020 г. 14:12
Docent

Полезная статья. Как всегда - то что надо. Добавлю ещё маленькую полезность - после установки tracer (88 строка) и перед выводом значений в lineEdit (91 строка) стоит добавить updatePositio…
17 января 2020 г. 2:31
Андрей Янкович

Выглядит как ошибка библиотеки. Расскажите подробно на какой платформе вы собираете проект (MinGW или MSVC) их версии и версии Qt.
Сейчас обсуждают на форуме
27 января 2020 г. 3:17
Илья Чичак

а почему бы не сделать одну модель, например Attachement со всеми этими полями, и в зависимости от действия пользователя, например, "добавить документ", "добавить картинку" и т.д. класть все это…
E
26 января 2020 г. 11:42
Edi

Другого способа, как получать перезагруженный контент через JavaScript на странице, я не знаю. Получилось сделать без QWebEngineView, с помощью QWebEnginePage, runJavaScrip…
E
26 января 2020 г. 11:14
Edi

Да, я не понял до конца того, как это работает, мало опыта работы с qt и QVAriant ни разу не использовал. Спасибо за помощь)
VZ
26 января 2020 г. 4:11
Vladimir Zhitkovsky

Да, спасибо порешалось таким образом: удаление одного for(int i = 0; i < lstData.count(); ++i){ auto *data= dynamic_cast<Data*>(lstData[i]); if(data) { if(…
14 января 2020 г. 9:04
Руслан Волшебник

Проблема осталась. Но я выснил, что это происходит когда файл достигает максимального размера.
EVILEG
О нас
Услуги
© EVILEG 2015-2019
Рекомендует хостинг TIMEWEB