Есть модель, содержащая строки, и списочное представление.
Представление QListView
является потомком QPaintDevice
, следовательно в нём можно переопределить paintEvent(QPaintEvent*)
и нарисовать на нём что-то. Например, нужно нарисовать (точнее напечатать уже готовый при помощи QPainter::drawPixmap())
файл cheker.png:
#include <QApplication>
#include <QPainter>
#include <QPaintEvent>
#include <QListView>
#include <QStringListModel>
class View :public QListView {
public:
void paintEvent(QPaintEvent* event) {
QListView::paintEvent(event);
QPainter painter(this);
painter.drawPixmap(10,10,QPixmap("cheker.png"));
}
};
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QStringListModel model;
QStringList list;
list << "a" << "b" << "c" << "d" << "e" << "f" << "g" << "h";
model.setStringList(list);
View view;
view.setModel(&model);
view.show();
return a.exec();
}
Не происходит того, что ожидается - картинка не печатается. Представление изображается так, как если бы никакие методы не переопределялись. А в консоль печатается следующее:
Как, собственно, рисовать на представлении?
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
В общем, пишу небольшое приложение на С++ в Qt, которое сможет отрисовывать графы, использую стороннюю библиотеку Graphviz в QtПри дебаге приложения...
Как прочитать весь текущий std::cin одной операцией в строку std::string?
если на введу значение в инпут, вызовется этот методесли я нажму backspace - вызоветсья этот метод