[! gelöst !]setSelectionBehavior KLAPPT NICHT !!

Alles rund um die Programmierung mit Qt
Antworten
shader76
Beiträge: 107
Registriert: 3. März 2006 14:29

[! gelöst !]setSelectionBehavior KLAPPT NICHT !!

Beitrag von shader76 »

Hallo zusammen,

Ich habe ein ein Table Widget mit 2 Columns.
wie erreiche ich das in meinem TableWidget bei der Selektion des Columns0 gleichzeitig auch der Column1 ausgewählt wird ?
Zuletzt geändert von shader76 am 19. April 2006 09:19, insgesamt 3-mal geändert.
-shader76-
-Visual Studio.Net 2003 & QT4.1
Alci
Beiträge: 70
Registriert: 24. März 2006 23:34

Beitrag von Alci »

Hi,

versuchs mal mit:

Code: Alles auswählen

setSelectionBehavior(QAbstractItemView::SelectRows);
MfG, Alci.
shader76
Beiträge: 107
Registriert: 3. März 2006 14:29

Beitrag von shader76 »

Hi Alci

habs versucht klappt aber nicht :?

Code: Alles auswählen

ui.myTable->setSelectionBehavior(QAbstractItemView::SelectRows);
-shader76-
-Visual Studio.Net 2003 & QT4.1
shader76
Beiträge: 107
Registriert: 3. März 2006 14:29

Beitrag von shader76 »

SelectionBehaviour und SelectionMode sind in den Properties als SelectRows und SingleSelection eingestellt, jedoch kann ich keine ganze reihe auswählen, warum ?

Code: Alles auswählen

#include "test01.h"
#include <QHeaderView>
#include <QTableWidget>
#include <QAbstractItemView>

test01::test01(QWidget *parent, Qt::WFlags flags)
    : QMainWindow(parent, flags)
{
	ui.setupUi(this);

	ui.domainTxt->setGeometry(10,10,207,22);
	setFixedSize(520,260);

	ui.addBtn->setText("Hinzufügen");
	ui.updateBtn->setText("Ändern");
	ui.delBtn->setText("Löschen");

	setTabOrder(ui.domainTxt,ui.IpTxt);
	setTabOrder(ui.IpTxt,ui.addBtn);
	setTabOrder(ui.addBtn,ui.myTable);
	
	ui.myTable->setColumnCount(2);
    ui.myTable->horizontalHeader()->setResizeMode(0, QHeaderView::Stretch);
	ui.myTable->verticalHeader()->hide();
	ui.myTable->horizontalHeader()->hide();
	ui.myTable->setShowGrid(false);

	ui.myTable->setSelectionBehavior( QAbstractItemView::SelectRows );
	ui.myTable->setSelectionMode( QAbstractItemView::SingleSelection );
		
}

test01::~test01()
{

}

void test01::on_addBtn_clicked()
{
	QString s1 = ui.domainTxt->text();
	QString s2 = ui.IpTxt->text();

	QTableWidgetItem *file1 = new QTableWidgetItem(s1);
	file1->setFlags(Qt::ItemIsEnabled);
	QTableWidgetItem *file2 = new QTableWidgetItem(s2);
	file2->setFlags(Qt::ItemIsEnabled);

	int row = ui.myTable->rowCount();
	ui.myTable->insertRow(row);
	ui.myTable->setItem(row, 0, file1);
	ui.myTable->setItem(row, 1, file2);
}

void test01::on_myTable_currentItemChanged()
{
	int row = ui.myTable->currentRow();
	ui.domainTxt->setText(ui.myTable->item(row,0)->text());
	ui.IpTxt->setText(ui.myTable->item(row,1)->text());
}

Ich würde halt gerne wenn ich ein Item anwähle das er mir die ganze Reihe selektiert.
-shader76-
-Visual Studio.Net 2003 & QT4.1
shader76
Beiträge: 107
Registriert: 3. März 2006 14:29

Beitrag von shader76 »

Kann ich davon ausgehen dass es diese Option nicht gibt oder warum antwortet mir keiner :?: :?: :?:
-shader76-
-Visual Studio.Net 2003 & QT4.1
macman
Beiträge: 1738
Registriert: 15. Juni 2005 13:33
Wohnort: Gütersloh
Kontaktdaten:

Beitrag von macman »

shader76 hat geschrieben:Kann ich davon ausgehen dass es diese Option nicht gibt oder warum antwortet mir keiner :?: :?: :?:
Vielleicht weil nicht jeder gleich alles stehen und liegen lässt, um dein Problem nach zu vollziehen :-)

Ich würde mal vermuten das sich hier SelectRows und SingleSelection in die Quere kommen. Bei einer QTable ist doch jede Zelle ein Item, also heißt SelectRows mehrere Items und SingleSelection verbietet das wieder. Was passiert denn wenn Du SingleSelection weg lässt?
shader76
Beiträge: 107
Registriert: 3. März 2006 14:29

Beitrag von shader76 »

das habe ich mittlerweile rausgelassen, ich sehe auch durch die currentitemchanged funktion das er mir die ganze reihe selektiert nur wird das nicht angezeigt bzw blau hinterlegt das ich die auswahl dementsprechend erkennen kann.
-shader76-
-Visual Studio.Net 2003 & QT4.1
shader76
Beiträge: 107
Registriert: 3. März 2006 14:29

Beitrag von shader76 »

habs hinbekommen, falls interesse besteht zeige ich gerne wie
-shader76-
-Visual Studio.Net 2003 & QT4.1
rm4711
Beiträge: 1
Registriert: 29. Juni 2006 12:02
Wohnort: Köln

Beitrag von rm4711 »

shader76 hat geschrieben:habs hinbekommen, falls interesse besteht zeige ich gerne wie
Na, dann werde ich das mal übernehmen:

ersetze

Code: Alles auswählen

file1->setFlags(Qt::ItemIsEnabled); 
durch

Code: Alles auswählen

file1->setFlags(file1->flags() & ~Qt::ItemIsEditable); 
wenn die Editierbarkeit auf Zellebene kontrollierbar sein soll, und es fluppt. :)

Gruß aus Köln!
Antworten