Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.222.120.133] |
|
Сообщ.
#1
,
|
|
|
Здравствуйте! у меня возникла такая проблемка - есть форма QTableWidget, у нее имеется задний фон(картинка), при перетаскивании ее на другую форму размером 3х3, необходимо что бы картинка оставалась такой же, а вот текст менялся на нужный мне. Как это реализовать путем dragEnterEvent и dropEvent? И есть ли другие способы это сделать?
P.S Формы отображаются в отдельном классе/виджете. Главная форма GameScr::GameScr(QWidget *parent) : QWidget(parent), ui(new Ui::GameScr) { ui->setupUi(this); //Объявление новых классов Inventory *invent; invent = new Inventory(); tester *t; t = new tester(); setAcceptDrops(true); //добавление виджетов на сцену scene2 = new QGraphicsScene(this); scene2->addWidget(t); scene = new QGraphicsScene(this); scene->addWidget(invent); //установка отображения сцен ui->graphicsView->setScene(scene); ui->graphicsView_2->setScene(scene2); //Для коректного отображения указываю размеры сцены scene->setSceneRect(0,0,900,600); } Форма предмета tester::tester(QWidget *parent) : QWidget(parent), ui(new Ui::tester) { ui->setupUi(this); bd = new DataBase(); img = bd->getItem(1); ui->tableWidget->item(0,0)->setBackground(QBrush(QPixmap(":/res/img/apple2.jpg"))); ui->tableWidget->setStyleSheet("QTableWidget::item{background-image: url(:/res/img/apple2.jpg)}"); setAcceptDrops(true); ui->tableWidget->setDragDropOverwriteMode(true); ui->tableWidget->viewport()->setAcceptDrops(true); ui->tableWidget->setDropIndicatorShown(true); } Форма инвентаря Inventory::Inventory(QWidget *parent) : QWidget(parent), ui(new Ui::Inventory) { ui->setupUi(this); setAcceptDrops(true); ui->tableWidget->setDragDropOverwriteMode(true); ui->tableWidget->viewport()->setAcceptDrops(true); ui->tableWidget->setDropIndicatorShown(true); } Платформа Windows 10. Qt - 5.9.1 |