Ich bin gerade dabei Qt zuerlernen. Ich wollte in einem QGraphicView den zustand eines unsortierten Vectors(int) visualisieren und während der sortierung anschauen.
so wie in diesem video: http://www.youtube.com/watch?v=lyHB5kimryQ
Nur anders als im video möchte ich den Farbton entsprechend der Wertigkeit ändern.
Ich habe mit QT-Creator ein QGraphicView angelegt und beim click auf dem button soll eine zahlenarray sortiert werden, zuvor gebe ich es im graphicview aus:
Code: Alles auswählen
// der konstruktor
MainWindow::MainWindow(QWidget *parent) :QMainWindow(parent), ui(new Ui::MainWindow)
{
ui->setupUi(this);
scene = new QGraphicsScene(this);
ui->graphicsView->setScene(scene);
for(int i=0;i<256;i++) {
values[i] = irand(0,8096);
QPen blackPen(QColor(255*values[i]/8096,0,0,255));
blackPen.setWidth(1);
line[i] = scene->addLine(i,0,i,50,blackPen);
}
connect(ui->pushButton,SIGNAL(clicked()),this,SLOT(bubbleSort()));
}
Code: Alles auswählen
// der slot
void MainWindow::bubbleSort() {
int tmp;
QPen*pen;
for(int i=0; i<256; i++) {
for(int j=0; j<256; j++) {
if(values[i]<values[j]) {
tmp = values[i];
values[i]=values[j];
values[j]=tmp;
}
}
}
for(int i=0; i<256; i++) {
QPen blackPen(QColor(0,255*values[i]/8096,0,255));
blackPen.setWidth(1);
line[i] = scene->addLine(i,0,i,50,blackPen);
}
}
Mit besten Gruß