Russian Qt Forum

Qt => Кладовая готовых решений => Тема начата: alexu007 от Май 05, 2022, 10:19



Название: Круги в таблице QTableWidget, имитация графики
Отправлено: alexu007 от Май 05, 2022, 10:19
Рисование цветных кругов в ячейках таблицы QTableWidget, псевдографика. Подходит для игры Го и подобных:

Код:
#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>
#include <QLabel>



QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACE

class Widget : public QWidget
{
    Q_OBJECT

public:
    Widget(QWidget *parent = nullptr);
    ~Widget();

private:
    Ui::Widget *ui;

public slots:
    void press_pbtn_01();
    void table_clik(int, int);

};
#endif // WIDGET_H


Код:
#include "widget.h"
#include "ui_widget.h"



Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);

    // отключение курсора
    ui->tableWidget->setSelectionMode(QAbstractItemView::NoSelection);

    // инициализация таблицы
    for(int i = 0; i < 10; i++)
        for(int j = 0; j < 10; j++)
        {
            ui->tableWidget->setCellWidget(i ,j, new QLabel);
        }



    QObject::connect(ui->pbtn_01,SIGNAL(clicked()),this,SLOT(press_pbtn_01()));

    QObject::connect(ui->tableWidget,SIGNAL(cellClicked(int, int)),
                                               this,SLOT(table_clik(int, int)));

}



Widget::~Widget()
{
    delete ui;
}



// clear
void Widget::press_pbtn_01()
{
    QString str = "border-radius: 13px; background-color:white;";

    for(int row = 0; row < 10; row++)
        for(int col = 0; col < 10; col++)
        {
            QLabel *lbl(qobject_cast<QLabel*>(ui->tableWidget->cellWidget(row, col)));
            lbl->setStyleSheet(str);
        }

    this -> repaint();
}




// клик в таблицу
void Widget::table_clik(int row, int col)
{
    static int cx = 0;

    QString str = "border-radius: 13px; background-color:red;";
    if(cx % 2) str = "border-radius: 13px; background-color:blue;";

    QLabel *lbl(qobject_cast<QLabel*>(ui->tableWidget->cellWidget(row, col)));

    lbl->setFixedSize(26, 26);
    lbl->setStyleSheet(str);

    cx++;
}



Название: Re: Круги в таблице QTableWidget, имитация графики
Отправлено: kambala от Май 05, 2022, 12:06
а про гитхаб и прочие хранилища репозиториев ты не слышал?


Название: Re: Круги в таблице QTableWidget, имитация графики
Отправлено: alexu007 от Май 05, 2022, 13:13
Слышал, и даже заходил - но ни разу имеющаяся там информация мне не помогла. Набор каких-то ссылок на файлы, не имеющие полезной информации - по крайней мере для меня.

А в чём проблема? Тема называется "Кладовая готовых решений", я как раз и выкладываю готовые решения, полезные для новичков, тех кто делает первые шаги в Qt.


Название: Re: Круги в таблице QTableWidget, имитация графики
Отправлено: kambala от Май 05, 2022, 14:38
речь о размещении исходников там, а не архивом как 20 лет назад :)


Название: Re: Круги в таблице QTableWidget, имитация графики
Отправлено: alexu007 от Май 05, 2022, 17:18
Russian Qt Forum - будем поддерживать отечественного производителя. И импортозамещение.


Название: Re: Круги в таблице QTableWidget, имитация графики
Отправлено: tux от Май 05, 2022, 21:51
Угу. А через N лет либо форум накроется, либо всё сгинет в неизвестность.
На гитхабе такое лучше размещать - правильно советуют.
P.S. Хотя, судя по оформлению кода - этот код нужен только автору.


Название: Re: Круги в таблице QTableWidget, имитация графики
Отправлено: sergek от Май 06, 2022, 12:48
Угу. А через N лет либо форум накроется
...
Он уже накрылся, после того как здесь появился зероинтеллект.


Название: Re: Круги в таблице QTableWidget, имитация графики
Отправлено: tux от Май 06, 2022, 13:21
Он уже накрылся, после того как здесь появился зероинтеллект.
Тут пробема не в том странном пользователе, а в том, что здесь модераторов нет.
Хотя, форумы уж вымерли, похоже. Особой активности даже на зарубежных нет. Многие по социальным сетям заныкались и там  сидят. В гордом одиночестве. Приятно же поговорить с умным человеком, правда? ;)


Название: Re: Круги в таблице QTableWidget, имитация графики
Отправлено: qtkoder777 от Май 11, 2022, 16:12
Говнокодеры в основном на стековерфлоу тусуются. Это форум или что?


Название: Re: Круги в таблице QTableWidget, имитация графики
Отправлено: qtkoder777 от Май 11, 2022, 16:13
Угу. А через N лет либо форум накроется, либо всё сгинет в неизвестность.
Через N лет и гитхаб накроется.


Название: Re: Круги в таблице QTableWidget, имитация графики
Отправлено: tux от Май 11, 2022, 17:36
Через N лет и гитхаб накроется.
Когда то и солнце погаснет. Надо прямо сейчас начинать паниковать? :)
Ну не нравится гитхаб - есть гитлаб. Либо, можно, вообще свой сервер поднять.


Название: Re: Круги в таблице QTableWidget, имитация графики
Отправлено: qtkoder777 от Май 11, 2022, 23:23
Именно для нас гитхаб может накрыться в любой момент в свете санкций. И вообще GIT отстой.


Название: Re: Круги в таблице QTableWidget, имитация графики
Отправлено: tux от Май 11, 2022, 23:28
Не накроется. Блокировки никому особо не мешают. Да и не мешали.
Впрочем, лично вам никто не мешает сделать свой хаб. С блекджеком и поэтессами. И поделиться им с остальным миром. Будет свой русхаб. Посконый, домотканый и очень кондовый. :D


Название: Re: Круги в таблице QTableWidget, имитация графики
Отправлено: qtkoder777 от Май 12, 2022, 09:40
Не накроется. Блокировки никому особо не мешают. Да и не мешали.
Впрочем, лично вам никто не мешает сделать свой хаб. С блекджеком и поэтессами. И поделиться им с остальным миром. Будет свой русхаб. Посконый, домокканый и очень кондовый. :D
Российский закон мешает. Нежелание тратить на это свои деньги и свой труд мешает. Если на Вашем сайте начнут размещать запрещённые материалы, то Вы пойдёте как соучастник преступления. Вместо говнокода можно постить призывы к свержению власти в файлах с расширением .с. Это Вам как идея.