本文整理汇总了C++中QTableWidget::setSelectionMode方法的典型用法代码示例。如果您正苦于以下问题:C++ QTableWidget::setSelectionMode方法的具体用法?C++ QTableWidget::setSelectionMode怎么用?C++ QTableWidget::setSelectionMode使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类QTableWidget
的用法示例。
在下文中一共展示了QTableWidget::setSelectionMode方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: tr
QTableWidget *StManagerStudyListComp::createStudyTable ()
{
QTableWidget *table = new QTableWidget;
table->setSelectionBehavior( QAbstractItemView::SelectRows );
table->setSelectionMode( QAbstractItemView::SingleSelection );
table->setEditTriggers( QAbstractItemView::NoEditTriggers );
QStringList labels;
for ( int i = 0; i < ATTRIBUTE_NUMBER; i++ ) {
labels << tr( attributeNames[i] );
}
table->setColumnCount( labels.size() + 1 );
table->setHorizontalHeaderLabels( labels );
table->setColumnHidden( ATTRIBUTE_NUMBER, true );
for ( int i = 0; i < ATTRIBUTE_NUMBER; i++ )
{
if ( attributeResizes[i] ) {
table->horizontalHeader()->setResizeMode( i, QHeaderView::ResizeToContents );
}
}
connect( table, SIGNAL(itemSelectionChanged()), this, SLOT(setEnabledView()) );
connect( table, SIGNAL(itemDoubleClicked( QTableWidgetItem * )), this, SLOT(view()) );
return table;
}
示例2: ConfiguratorPanel
InformationPanel::InformationPanel(QWidget *parent)
: ConfiguratorPanel(false, parent) {
_name = "Information";
_icon = QIcon(":/res/icons/info.png");
setHeadline("Information");
setDescription("System paths and variables");
QVBoxLayout *l = new QVBoxLayout;
l->setMargin(0);
setLayout(l);
QTableWidget *table = new QTableWidget;
table->setFrameShape(QFrame::NoFrame);
table->setColumnCount(2);
table->verticalHeader()->setVisible(false);
table->horizontalHeader()->setStretchLastSection(true);
table->horizontalHeader()->setDefaultAlignment(Qt::AlignLeft);
table->setHorizontalHeaderLabels(QStringList() << "Name" << "Value");
table->setAlternatingRowColors(true);
table->setSelectionMode(QAbstractItemView::NoSelection);
l->addWidget(table);
Seiscomp::Environment *env = Seiscomp::Environment::Instance();
addRow(table, "PATH", getenv("PATH"));
addRow(table, "ROOTDIR", env->installDir().c_str());
addRow(table, "DEFAULTCONFIGDIR", env->globalConfigDir().c_str());
addRow(table, "SYSTEMCONFIGDIR", env->appConfigDir().c_str());
addRow(table, "CONFIGDIR", env->configDir().c_str());
addRow(table, "LOGDIR", env->logDir().c_str());
addRow(table, "DATADIR", env->shareDir().c_str());
table->resizeColumnsToContents();
}
示例3: createFilesTable
static QTableWidget* createFilesTable(const QStringList &fileNames)
{
QTableWidget *table = new QTableWidget(0, 2);
table->setSelectionMode(QAbstractItemView::NoSelection);
QStringList labels({
QCoreApplication::translate("AddImageToResources","Filename"),
QCoreApplication::translate("AddImageToResources","Size")
});
table->setHorizontalHeaderLabels(labels);
table->horizontalHeader()->setSectionResizeMode(0, QHeaderView::Stretch);
table->verticalHeader()->hide();
table->setShowGrid(false);
for (const QString &filePath : fileNames) {
const QString toolTip = QDir::toNativeSeparators(filePath);
const QString fileName = QFileInfo(filePath).fileName();
const qint64 size = QFileInfo(filePath).size() / 1024;
QTableWidgetItem *fileNameItem = new QTableWidgetItem(fileName);
fileNameItem->setToolTip(toolTip);
fileNameItem->setFlags(fileNameItem->flags() ^ Qt::ItemIsEditable);
QTableWidgetItem *sizeItem = new QTableWidgetItem(QString::number(size) + " KB");
sizeItem->setToolTip(toolTip);
sizeItem->setTextAlignment(Qt::AlignRight | Qt::AlignVCenter);
sizeItem->setFlags(sizeItem->flags() ^ Qt::ItemIsEditable);
int row = table->rowCount();
table->insertRow(row);
table->setItem(row, 0, fileNameItem);
table->setItem(row, 1, sizeItem);
}
return table;
}
示例4: standartStuffForAllTables
void MainWindow::standartStuffForAllTables(QTableWidget& table)
{
table.setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
table.setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
table.setEditTriggers(QAbstractItemView::NoEditTriggers);
table.verticalHeader()->hide();
table.horizontalHeader()->hide();
table.setEditTriggers(QAbstractItemView::NoEditTriggers);
table.setSelectionMode(QAbstractItemView::NoSelection);
table.setFocusPolicy(Qt::NoFocus);
}
示例5:
QTableWidget *StManagerStudyListComp::createSeriesSelectionTable ()
{
QTableWidget *seriesTable = new QTableWidget;
seriesTable->setSelectionMode( QAbstractItemView::SingleSelection );
seriesTable->setEditTriggers( QAbstractItemView::NoEditTriggers );
seriesTable->setColumnCount( 1 );
seriesTable->horizontalHeader()->setResizeMode( QHeaderView::Stretch );
seriesTable->horizontalHeader()->hide();
return seriesTable;
}
示例6: TableWidget
QWidget * Table::createQtWidget(Proxy *proxy, UIProxy *uiproxy, QWidget *parent)
{
QTableWidget *tablewidget = new TableWidget(this, parent);
tablewidget->setEnabled(enabled);
tablewidget->setVisible(visible);
tablewidget->setStyleSheet(QString::fromStdString(style));
size_t rowcount = rows.size(), columncount = 0;
for(size_t i = 0; i < rowcount; i++)
columncount = std::max(columncount, rows[i].size());
tablewidget->setRowCount(rowcount);
tablewidget->setColumnCount(columncount);
tablewidget->horizontalHeader()->setVisible(show_horizontal_header);
tablewidget->verticalHeader()->setVisible(show_vertical_header);
tablewidget->setShowGrid(show_grid);
QStringList qtHorizontalHeader;
for(size_t i = 0; i < horizontalHeader.size(); i++)
qtHorizontalHeader << QString::fromStdString(horizontalHeader[i]);
tablewidget->setHorizontalHeaderLabels(qtHorizontalHeader);
QStringList qtVerticalHeader;
for(size_t i = 0; i < verticalHeader.size(); i++)
qtVerticalHeader << QString::fromStdString(verticalHeader[i]);
tablewidget->setVerticalHeaderLabels(qtVerticalHeader);
if(autosize_horizontal_header)
tablewidget->horizontalHeader()->setSectionResizeMode(QHeaderView::ResizeToContents);
if(autosize_vertical_header)
tablewidget->verticalHeader()->setSectionResizeMode(QHeaderView::ResizeToContents);
if(sortable)
tablewidget->setSortingEnabled(true);
for(size_t row = 0; row < rowcount; row++)
{
for(size_t column = 0; column < rows[row].size(); column++)
{
TableItem &item = rows[row][column];
QTableWidgetItem *qtwitem = new QTableWidgetItem(QString::fromStdString(item.text));
if(item.editable)
qtwitem->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled | Qt::ItemIsEditable);
else
qtwitem->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled);
tablewidget->setItem(row, column, qtwitem);
}
}
tablewidget->setSelectionBehavior(selectionBehavior);
tablewidget->setSelectionMode(selectionMode);
QObject::connect(tablewidget, &QTableWidget::cellActivated, uiproxy, &UIProxy::onCellActivate);
QObject::connect(tablewidget, &QTableWidget::cellChanged, uiproxy, &UIProxy::onCellActivate);
QObject::connect(tablewidget, &QTableWidget::itemSelectionChanged, uiproxy, &UIProxy::onTableSelectionChange);
setQWidget(tablewidget);
setEditable(editable);
setProxy(proxy);
return tablewidget;
}
示例7: QAction
AccountWindow::AccountWindow(QWidget* parent, const QString &name, Qt::WindowFlags wflags)
:TableWindow(parent, name, wflags)
{
QStringList nameList;
QTableWidget *pTable;
QAction* pAction;
pTable = TableWindow::getTable();
m_pDb = ISql::pInstance();
pAction = new QAction(tr("&New..."), this);
connect(pAction, SIGNAL(triggered()), this, SLOT(file_new()));
MDIWindow::addAction(pAction);
pAction = new QAction(tr("&Edit..."), this);
connect(pAction, SIGNAL(triggered()), this, SLOT(file_edit()));
MDIWindow::addAction(pAction, true);
pAction = new QAction(tr("&Delete"), this);
connect(pAction, SIGNAL(triggered()), this, SLOT(file_delete()));
MDIWindow::addAction(pAction);
pAction = new QAction(this);
pAction->setSeparator(true);
MDIWindow::addAction(pAction);
pAction = new QAction(tr("&Export all..."), this);
connect(pAction, SIGNAL(triggered()), this, SLOT(exportTable()));
MDIWindow::addAction(pAction);
// configure the table
TableWindow::setWindowIcon(QIcon(":/document.xpm"));
pTable->setEditTriggers(QAbstractItemView::NoEditTriggers);
pTable->setSelectionMode(QAbstractItemView::SingleSelection);
// header
nameList += tr("Username");
nameList += tr("Contest");
nameList += tr("Description");
setupHeader(nameList);
pTable->setColumnWidth(Username, 100);
pTable->setColumnWidth(Contest, 100);
pTable->setColumnWidth(Description, 200);
connect(m_pDb, SIGNAL(accountsChanged()), this, SLOT(file_update()));
file_update();
}
示例8: QWidget
//.........这里部分代码省略.........
const int rowHeight = 20;
QSize catSize, headerSize;
catSize.setHeight(36);
headerSize.setHeight(24);
// Category list header
QListWidgetItem * catListHeader = new QListWidgetItem(tr("Category"));
catListHeader->setSizeHint(headerSize);
catListHeader->setFlags(Qt::NoItemFlags);
catListHeader->setForeground(QBrush(QColor("#130F2A")));
catListHeader->setBackground(QBrush(QColor("#F6CB1C")));
catListHeader->setTextAlignment(Qt::AlignCenter);
catList->addItem(catListHeader);
// Populate
bindingsPages = new QHBoxLayout();
bindingsPages->setContentsMargins(0, 0, 0, 0);
rightLayout->addLayout(bindingsPages);
QWidget * curPage = NULL;
QVBoxLayout * curLayout = NULL;
QTableWidget * curTable = NULL;
bool bFirstPage = true;
selectedBindTable = NULL;
bindComboBoxCellMappings = new QHash<QObject *, QTableWidgetItem *>();
bindCellComboBoxMappings = new QHash<QTableWidgetItem *, QComboBox *>();
for (int i = 0; i < BINDS_NUMBER; i++)
{
if (cbinds[i].category != NULL)
{
// Add stretch at end of previous layout
if (curLayout != NULL) curLayout->insertStretch(-1, 1);
// Category list item
QListWidgetItem * catItem = new QListWidgetItem(HWApplication::translate("binds (categories)", cbinds[i].category));
catItem->setSizeHint(catSize);
catList->addItem(catItem);
// Create new page
curPage = new QWidget();
curLayout = new QVBoxLayout(curPage);
curLayout->setSpacing(2);
bindingsPages->addWidget(curPage);
if (!bFirstPage) curPage->setVisible(false);
}
// Description
if (cbinds[i].description != NULL)
{
QLabel * desc = new QLabel(HWApplication::translate("binds (descriptions)", cbinds[i].description));
curLayout->addWidget(desc, 0);
QFrame * divider = new QFrame();
divider->setFrameShape(QFrame::HLine);
divider->setFrameShadow(QFrame::Plain);
curLayout->addWidget(divider, 0);
}
// New table
if (cbinds[i].category != NULL || cbinds[i].description != NULL)
{
curTable = new QTableWidget(0, 2);
curTable->verticalHeader()->setVisible(false);
curTable->horizontalHeader()->setVisible(false);
curTable->horizontalHeader()->setResizeMode(QHeaderView::Stretch);
curTable->verticalHeader()->setDefaultSectionSize(rowHeight);
curTable->setShowGrid(false);
curTable->setStyleSheet("QTableWidget { border: none; } ");
curTable->setSelectionBehavior(QAbstractItemView::SelectRows);
curTable->setSelectionMode(QAbstractItemView::SingleSelection);
curTable->setFocusPolicy(Qt::NoFocus);
connect(curTable, SIGNAL(itemSelectionChanged()), this, SLOT(bindSelectionChanged()));
connect(curTable, SIGNAL(itemClicked(QTableWidgetItem *)), this, SLOT(bindCellClicked(QTableWidgetItem *)));
curLayout->addWidget(curTable, 0);
}
// Hidden combo box
QComboBox * comboBox = CBBind[i] = new QComboBox(curTable);
comboBox->setModel((QAbstractItemModel*)DataManager::instance().bindsModel());
comboBox->setVisible(false);
comboBox->setFixedWidth(200);
// Table row
int row = curTable->rowCount();
QTableWidgetItem * nameCell = new QTableWidgetItem(HWApplication::translate("binds", cbinds[i].name));
nameCell->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled);
curTable->insertRow(row);
curTable->setItem(row, 0, nameCell);
QTableWidgetItem * bindCell = new QTableWidgetItem(comboBox->currentText());
bindCell->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled);
curTable->setItem(row, 1, bindCell);
curTable->resizeColumnsToContents();
curTable->setFixedHeight(curTable->verticalHeader()->length() + 10);
// Updates the text in the table cell
connect(comboBox, SIGNAL(currentIndexChanged(const QString &)), this, SLOT(bindChanged(const QString &)));
// Map combo box and that row's cells to each other
bindComboBoxCellMappings->insert(comboBox, bindCell);
bindCellComboBoxMappings->insert(nameCell, comboBox);
bindCellComboBoxMappings->insert(bindCell, comboBox);
}
示例9: create_mesh_tab
void model_import_dlg::create_mesh_tab(QTabWidget * parent, size_t index, render::lod lod)
{
QWidget * tab = new QWidget(parent);
tab->setObjectName("meshTab");
auto & geometry = conv.get(index).geometry.at(lod);
auto & material = conv.get(index).materials.at(lod);
QGroupBox * geometry_box = new QGroupBox(tab);
geometry_box->setGeometry(10, 10, 561, 115);
geometry_box->setTitle("Geometry");
QLabel * vertices = new QLabel(geometry_box);
vertices->setGeometry(20, 20, 200, 20);
vertices->setText("Vertices: " + QString::number(geometry.vertex_count));
QLabel * faces = new QLabel(geometry_box);
faces->setGeometry(20, 40, 200, 20);
faces->setText("Faces: " + QString::number(geometry.index_count / 3));
QLabel * indices = new QLabel(geometry_box);
indices->setGeometry(20, 60, 200, 20);
indices->setText("Indices: " + QString::number(geometry.index_count));
QLabel * layout = new QLabel(geometry_box);
layout->setGeometry(20, 80, 200, 20);
layout->setText("Layout: " + QString::fromStdString(render::vertex::str(geometry.vertex_type)));
QGroupBox * material_box = new QGroupBox(tab);
material_box->setGeometry(10, 130, 561, 400);
material_box->setTitle("Material");
QGroupBox * colors_box = new QGroupBox(material_box);
colors_box->setGeometry(15, 20, 455, 134);
colors_box->setTitle("Colors");
QTableWidget * colorsTable = new QTableWidget(colors_box);
colorsTable->setGeometry(15, 25, 237, 92);
colorsTable->setObjectName("colorsTable");
colorsTable->setRowCount(3);
colorsTable->setColumnCount(3);
colorsTable->setFrameShape(QFrame::NoFrame);
colorsTable->setShowGrid(false);
colorsTable->setSelectionBehavior(QAbstractItemView::SelectionBehavior::SelectRows);
colorsTable->setEditTriggers(QAbstractItemView::DoubleClicked);
colorsTable->horizontalHeader()->setDefaultSectionSize(60);
colorsTable->verticalHeader()->setDefaultSectionSize(23);
colorsTable->setSelectionMode(QAbstractItemView::SelectionMode::SingleSelection);
QStringList color_types;
color_types.append("Ambient");
color_types.append("Diffuse");
color_types.append("Specular");
QStringList color_channels;
color_channels.append("R");
color_channels.append("G");
color_channels.append("B");
colorsTable->setVerticalHeaderLabels(color_types);
colorsTable->setHorizontalHeaderLabels(color_channels);
colorsTable->setItem(0, 0, new QTableWidgetItem(QString::number(rgb_to_byte(material.ambient.x))));
colorsTable->setItem(0, 1, new QTableWidgetItem(QString::number(rgb_to_byte(material.ambient.y))));
colorsTable->setItem(0, 2, new QTableWidgetItem(QString::number(rgb_to_byte(material.ambient.z))));
colorsTable->setItem(1, 0, new QTableWidgetItem(QString::number(rgb_to_byte(material.diffuse.x))));
colorsTable->setItem(1, 1, new QTableWidgetItem(QString::number(rgb_to_byte(material.diffuse.y))));
colorsTable->setItem(1, 2, new QTableWidgetItem(QString::number(rgb_to_byte(material.diffuse.z))));
colorsTable->setItem(2, 0, new QTableWidgetItem(QString::number(rgb_to_byte(material.specular.x))));
colorsTable->setItem(2, 1, new QTableWidgetItem(QString::number(rgb_to_byte(material.specular.y))));
colorsTable->setItem(2, 2, new QTableWidgetItem(QString::number(rgb_to_byte(material.specular.z))));
QPushButton * colorPick = new QPushButton(colors_box);
colorPick->setGeometry(290, 24, 75, 23);
colorPick->setObjectName("colorPick");
colorPick->setText("Pick");
for (int i = 0; i < 3; i++)
for (int j = 0; j < 3; j++)
colorsTable->item(i, j)->setTextAlignment(Qt::AlignHCenter | Qt::AlignVCenter);
QObject::connect(colorsTable, SIGNAL(itemSelectionChanged()), this, SLOT(on_color_table_changed()));
QObject::connect(colorPick, SIGNAL(pressed()), this, SLOT(on_color_pick()));
QLabel * spec_power = new QLabel(colors_box);
spec_power->setGeometry(290, 89, 80, 23);
spec_power->setText("Specular power: ");
QDoubleSpinBox * spec_power_box = new QDoubleSpinBox(colors_box);
spec_power_box->setObjectName("specularSpinBox");
spec_power_box->setDecimals(2);
spec_power_box->setSingleStep(0.05);
spec_power_box->setFrame(false);
spec_power_box->setGeometry(390, 89, 50, 23);
spec_power_box->setValue(material.specular_power);
QGroupBox * textures_box = new QGroupBox(material_box);
textures_box->setGeometry(15, 159, 531, 225);
textures_box->setTitle("Textures");
//.........这里部分代码省略.........
示例10: colourPixmap
DocumentMetaConfigurationPage::DocumentMetaConfigurationPage(RosegardenDocument *doc,
QWidget *parent) :
TabbedConfigurationPage(doc, parent)
{
m_headersPage = new HeadersConfigurationPage(this, doc);
addTab(m_headersPage, tr("Headers"));
Composition &comp = doc->getComposition();
std::set
<TrackId> usedTracks;
int audioSegments = 0, internalSegments = 0;
for (Composition::iterator ci = comp.begin();
ci != comp.end(); ++ci) {
usedTracks.insert((*ci)->getTrack());
if ((*ci)->getType() == Segment::Audio)
++audioSegments;
else
++internalSegments;
}
QFrame *frame = new QFrame(m_tabWidget);
frame->setContentsMargins(10, 10, 10, 10);
QGridLayout *layout = new QGridLayout(frame);
layout->setSpacing(5);
layout->addWidget(new QLabel(tr("Filename:"), frame), 0, 0);
layout->addWidget(new QLabel(doc->getTitle(), frame), 0, 1);
layout->addWidget(new QLabel(tr("Formal duration (to end marker):"), frame), 1, 0);
timeT d = comp.getEndMarker();
RealTime rtd = comp.getElapsedRealTime(d);
layout->addWidget(new QLabel(durationToString(comp, 0, d, rtd), frame), 1, 1);
layout->addWidget(new QLabel(tr("Playing duration:"), frame), 2, 0);
d = comp.getDuration();
rtd = comp.getElapsedRealTime(d);
layout->addWidget(new QLabel(durationToString(comp, 0, d, rtd), frame), 2, 1);
layout->addWidget(new QLabel(tr("Tracks:"), frame), 3, 0);
layout->addWidget(new QLabel(tr("%1 used, %2 total")
.arg(usedTracks.size())
.arg(comp.getNbTracks()),
frame), 3, 1);
layout->addWidget(new QLabel(tr("Segments:"), frame), 4, 0);
layout->addWidget(new QLabel(tr("%1 MIDI, %2 audio, %3 total")
.arg(internalSegments)
.arg(audioSegments)
.arg(internalSegments + audioSegments),
frame), 4, 1);
layout->setRowStretch(5, 2);
addTab(frame, tr("Statistics"));
frame = new QFrame(m_tabWidget);
frame->setContentsMargins(10, 10, 10, 10);
layout = new QGridLayout(frame);
layout->setSpacing(5);
QTableWidget *table = new QTableWidget(1, 11, frame); // , "Segment Table"
table->setObjectName("StyledTable");
table->setAlternatingRowColors(true);
//table->setSelectionMode(QTableWidget::NoSelection);
table->setSelectionBehavior( QAbstractItemView::SelectRows );
table->setSelectionMode( QAbstractItemView::SingleSelection );
table->setSortingEnabled(true);
table->setHorizontalHeaderItem( 0, new QTableWidgetItem( tr("Type"))); // p1=column
table->setHorizontalHeaderItem( 1, new QTableWidgetItem( tr("Track")));
table->setHorizontalHeaderItem( 2, new QTableWidgetItem( tr("Label")));
table->setHorizontalHeaderItem( 3, new QTableWidgetItem( tr("Time")));
table->setHorizontalHeaderItem( 4, new QTableWidgetItem( tr("Duration")));
table->setHorizontalHeaderItem( 5, new QTableWidgetItem( tr("Events")));
table->setHorizontalHeaderItem( 6, new QTableWidgetItem( tr("Polyphony")));
table->setHorizontalHeaderItem( 7, new QTableWidgetItem( tr("Repeat")));
table->setHorizontalHeaderItem( 8, new QTableWidgetItem( tr("Quantize")));
table->setHorizontalHeaderItem( 9, new QTableWidgetItem( tr("Transpose")));
table->setHorizontalHeaderItem( 10, new QTableWidgetItem( tr("Delay")));
//table->setNumRows(audioSegments + internalSegments);
table->setRowCount(audioSegments + internalSegments);
table->setColumnWidth(0, 50);
table->setColumnWidth(1, 50);
table->setColumnWidth(2, 150);
table->setColumnWidth(3, 80);
table->setColumnWidth(4, 80);
table->setColumnWidth(5, 80);
table->setColumnWidth(6, 80);
table->setColumnWidth(7, 80);
table->setColumnWidth(8, 80);
table->setColumnWidth(9, 80);
table->setColumnWidth(10, 80);
int i = 0;
for (Composition::iterator ci = comp.begin();
ci != comp.end(); ++ci) {
//.........这里部分代码省略.........
示例11: setupUi
void InfoDialog::setupUi(const Tags &tags)
{
int row = 0;
QVBoxLayout *layout = new QVBoxLayout;
layout->setContentsMargins(0,0,0,0);
setWindowTitle(tr("EXIF information"));
if (!tags.fileName().isEmpty())
setWindowTitle(windowTitle() + " - " + QFileInfo(tags.fileName()).fileName());
setWindowIcon(QIcon(":images/exif_info"));
if (tags.size())
{
QMapIterator<int, QPair<Tag, Data> > tag(tags);
QTableWidget *tableWidget = new QTableWidget(tags.size(),2,this);
tableWidget->setAlternatingRowColors(true);
tableWidget->verticalHeader()->setVisible(false);
tableWidget->setEditTriggers(QAbstractItemView::NoEditTriggers);
tableWidget->setSelectionMode(QAbstractItemView::NoSelection);
tableWidget->setHorizontalHeaderItem(0,new QTableWidgetItem(tr("Tag")));
tableWidget->setHorizontalHeaderItem(1,new QTableWidgetItem(tr("Value")));
tableWidget->horizontalHeader()->setStretchLastSection(true);
while (tag.hasNext())
{
QTableWidgetItem *item;
QPair<Tag,Data> exifValue = tag.next().value();
item = new QTableWidgetItem(exifValue.first.title);
item->setToolTip(exifValue.first.description.split(". ",QString::SkipEmptyParts).join("\n"));
tableWidget->setItem(row,0,item);
item = new QTableWidgetItem(exifValue.second.readableValue);
item->setToolTip(exifValue.first.description.split(". ",QString::SkipEmptyParts).join("\n"));
tableWidget->setItem(row++,1,item);
}
tableWidget->resizeColumnsToContents();
tableWidget->resizeRowsToContents();
layout->addWidget(tableWidget);
}
else
{
QLabel *label = new QLabel(tr("No EXIF information available"),this);
label->setAlignment(Qt::AlignCenter);
layout->addWidget(label);
}
#ifdef Q_WS_MAC
QDialogButtonBox *buttonBox = new QDialogButtonBox(QDialogButtonBox::Ok,Qt::Horizontal,this);
connect(buttonBox,SIGNAL(accepted()),this,SLOT(close()));
layout->addWidget(buttonBox);
#endif
setLayout(layout);
resize(600,400);
}
示例12: calcul_general
void FenPrincipale::calcul_general() {
QString html = "<table>\n\t<thead>\n\t\t<tr>\n\t\t\t";
html += "<td>"+tr("Position")+"</td>";
html += "<td>"+tr("Équipage")+"</td>";
html += "<td>"+tr("Points")+"</td>";
for (int j = 0; j < this->nbManches; ++j) {
html += "<td>"+tr("M")+QString::number(j+1)+"</td>";
}
html += "\n\t\t</tr>\n\t</thead>\n\t<tboby>";
QTableWidget *table = new QTableWidget();
table->verticalHeader()->hide();
table->setSelectionMode(QAbstractItemView::NoSelection);
table->setColumnCount(3+this->nbManches);
table->setRowCount(this->nbEquipages);
table->setColumnWidth(0, 80);
table->setColumnWidth(1, 200);
table->setColumnWidth(2, 60);
int size = 80 + 200 + 60;
QList<QString> labels;
labels << tr("Position") << tr("Équipage") << tr("Points");
for (int j = 0; j < this->nbManches; ++j) {
labels << tr("M")+QString::number(j+1);
size += 50;
table->setColumnWidth(3+j, 50);
}
table->setMinimumWidth(size + 20);
table->setMaximumWidth(size + 20);
table->setHorizontalHeaderLabels(labels);
ui->resultatsLayout->insertWidget(0, table);
for (int i = 0; i < this->nbEquipages; ++i) {
QList<int> ids;
Equipage e1;
for (int k = 0; k < this->nbEquipages; ++k) {
Equipage e2 = this->equipages[k];
if (e2.points <= 0) {
// cet équipage a déjà été affiché
continue;
}
if (ids.isEmpty() || e2.points < e1.points) {
ids.clear();
ids.append(k);
e1 = e2;
}
else if (e2.points == e1.points) {
// égalité de points
// pour départager les équipages, on confronte leurs meilleures
// manches (sans celles retirées)
for (int j = 0; j < e1.pointsTries.size(); ++j) {
if (e2.pointsTries[j] < e1.pointsTries[j]) {
ids.clear();
ids.append(k);
e1 = e2;
break;
}
else if (e2.pointsTries[j] > e1.pointsTries[j]) {
break;
}
else if (j == e1.pointsTries.size()-1) {
// égalité des manches
// pour départager les équipages, on confronte toutes
// leur manches dans l'ordre en partant de la dernière
for (int l = 0; l < e1.pointsOrdonnes.size(); ++l) {
if (e2.pointsOrdonnes[l] < e1.pointsOrdonnes[l]) {
ids.clear();
ids.append(k);
e1 = e2;
break;
}
else if (e2.pointsOrdonnes[l] > e1.pointsOrdonnes[l]) {
break;
}
else if (l == e1.pointsOrdonnes.size()-1) {
// égalité parfaite
ids.append(k);
}
}
}
}
}
}
for (int k = 0; k < ids.size(); ++k) {
Equipage e = this->equipages[ids[k]];
// on ajoute le début de la table html
// on rajoute les manches en parallèle à causes de celles retirées
QString nomString = "<span class=\"equipage\">"+e.nom+"</span>";
if (this->typeClmt == CLMT_TEMPS) {
nomString += "<span class=\"bateau\">"
+this->bateaux.value(e.rating.toUpper()).serie
+" ("+QString::number(e.coef)+")</span>";
}
html += "\n\t\t<tr>\n\t\t\t<td>"+QString::number(i+1)+"</td>"
+"<td>"+nomString+"</td>"
+"<td>"+QString::number(e.points)+"</td>";
// on ajout l'équipage
QLabel *pos = new QLabel(QString::number(i+1));
QWidget *nomWidget = new QWidget();
QVBoxLayout *nomLayout = new QVBoxLayout();
QLabel *nom = new QLabel(e.nom);
nom->setProperty("label", "nom");
nomLayout->addWidget(nom);
//.........这里部分代码省略.........
示例13: calcul_manches
void FenPrincipale::calcul_manches() {
for (int j = 0; j < this->nbManches; ++j) {
// on initialise la table html pour l'export
QString html = "<table>\n\t<thead>\n\t\t<tr>\n\t\t\t";
html += "<td>"+tr("Place")+"</td>";
html += "<td>"+tr("Équipage")+"</td>";
html += "<td>"+tr("Points")+"</td>";
if (this->typeClmt == CLMT_TEMPS) {
html += "<td>"+tr("Temps réel")+"</td><td>"+tr("Temps compensé")+"</td>";
}
html += "\n\t\t</tr>\n\t</thead>\n\t<tboby>";
// on affiche la table qui va contenir les résultats de la manche
QTableWidget *table = new QTableWidget();
table->verticalHeader()->hide();
table->setSelectionMode(QAbstractItemView::NoSelection);
table->setProperty("table", "manches");
QList<QString> labels;
labels << tr("Place") << tr("Équipage") << tr("Points");
if (this->typeClmt == CLMT_TEMPS) {
table->setColumnCount(5);
labels << tr("Temps réel") << tr("Temps compensé");
table->setMaximumWidth(560 + 20);
table->setMinimumWidth(560 + 20);
table->setColumnWidth(3, 120);
table->setColumnWidth(4, 120);
}
else {
table->setColumnCount(3);
table->setMaximumWidth(320 + 20);
table->setMinimumWidth(320 + 20);
}
table->setColumnWidth(0, 60);
table->setColumnWidth(1, 200);
table->setColumnWidth(2, 60);
table->setHorizontalHeaderLabels(labels);
table->setRowCount(this->nbEquipages);
ui->choisirResultat->insertItem(j+1,
tr("Résultats de la manche %1").arg(QString::number(j+1)));
int nbAffiches = 0; // pour savoir à quelle ligne on en est
// on traite et affiche les équipages
// on traite chaque manche pour attribuer les points aux équipages
for (int i = 0; i < this->nbEquipages; ++i) {
// on recherche tous les équipages non encore traités pour cette
// manches qui ont un tpsCompense minimal
int min = 0;
QList<int> ids;
for (int k = 0; k < this->nbEquipages; ++k) {
Manche m = this->equipages[k].manches[j];
if (m.tpsCompense < 0 || m.points > 0 ) {
// cet équipage a déjà été traité ou n'a pas de place/temps
// (DNF, DNS, OCS, ...)
continue;
}
if (m.tpsCompense < min || min == 0) {
min = m.tpsCompense;
ids.clear();
ids.append(k);
}
else if (m.tpsCompense == min) {
ids.append(k);
}
}
if (min == 0) {
// on n'a pas trouvé d'équipage à traiter (se produit s'il y a
// des équipages DNS, DNF, OCS, ...)
break;
}
for (int l = 0; l < ids.size(); ++l) {
double points = (ids.size()-1.0)/2.0+i+1.0;
this->equipages[ids.at(l)].points += points;
this->equipages[ids.at(l)].pointsOrdonnes.prepend(points);
this->equipages[ids.at(l)].pointsTries.append(points);
this->equipages[ids.at(l)].manches[j].points = points;
// on affiche ces équipages
Equipage e = this->equipages[ids.at(l)];
Manche m = e.manches[j];
QLabel *place = new QLabel(QString::number(i+1));
table->setCellWidget(i+l, 0, place);
QWidget *nomWidget = new QWidget();
QVBoxLayout *nomLayout = new QVBoxLayout();
QLabel *nom = new QLabel(e.nom);
nom->setProperty("label", "nom");
nomLayout->addWidget(nom);
if (this->typeClmt == CLMT_TEMPS) {
QLabel *bateau = new QLabel();
bateau->setText(this->bateaux.value(e.rating.toUpper()).serie
+" ("+QString::number(e.coef)+")");
bateau->setProperty("label", "bateau");
nomLayout->addWidget(bateau);
table->setRowHeight(i+l, 45);
}
nomLayout->setContentsMargins(0, 0, 0, 0);
nomLayout->setSpacing(0);
nomWidget->setLayout(nomLayout);
table->setCellWidget(i+l, 1, nomWidget);
QLabel *pointsi = new QLabel(QString::number(m.points));
table->setCellWidget(i+l, 2, pointsi);
if (this->typeClmt == CLMT_TEMPS) {
QLabel *tpsReel = new QLabel(this->formate_tps(m.tpsReel));
table->setCellWidget(i+l, 3, tpsReel);
//.........这里部分代码省略.........
示例14: populateVMInfos
void VirshGui::populateVMInfos(string vmname)
{
VMStatus vmstatus = vmlist[vmname].getStatus();
string strstatus = vmlist[vmname].statusToString(vmstatus);
string memory = vmlist[vmname].getMemory();
string vmxml = vmlist[vmname].dumpXML();
string cpuCount = vmlist[vmname].getCPUCount();
string ostype = vmlist[vmname].getOSType();
string arch = vmlist[vmname].getArch();
vector<string> bootDevs = vmlist[vmname].getBootDevs();
vector<string> hvFeatures = vmlist[vmname].getHVFeatures();
vector<string> cpuFeatures = vmlist[vmname].getCPUFeatures();
string bootDevStr = join(bootDevs, ", ");
string hvFeatureStr = join(hvFeatures, ", ");
string cpuFeatureStr = join(cpuFeatures, ", ");
if (vmstatus == VMStatus::shutoff) {
ui->startStopButton->setText("VM starten");
ui->startStopButton->setEnabled(true);
ui->shutdownButton->setDisabled(true);
ui->rebootButton->setDisabled(true);
ui->virtViewerButton->setDisabled(true);
} else if (vmstatus == VMStatus::running) {
ui->startStopButton->setText("VM ausschalten");
ui->startStopButton->setEnabled(true);
ui->shutdownButton->setEnabled(true);
ui->rebootButton->setEnabled(true);
ui->virtViewerButton->setEnabled(true);
} else {
ui->startStopButton->setText("keine Aktion");
ui->startStopButton->setDisabled(true);
ui->shutdownButton->setDisabled(true);
ui->rebootButton->setDisabled(true);
ui->virtViewerButton->setDisabled(true);
}
while (ui->snapshotsTabLayout->count() > 0) {
QLayoutItem *item = ui->snapshotsTabLayout->takeAt(0);
delete item->widget();
delete item;
}
int snapshotTableCount = 0;
for (auto hdd : vmlist[vmname].getHDDImages()) {
int row = 0;
QGroupBox *hddGroupBox = new QGroupBox(QString::fromStdString(hdd.getPath()));
hddGroupBox->setFlat(false);
QVBoxLayout *hddVBox = new QVBoxLayout;
QTableWidget *snapshotTable = new QTableWidget(0, 5, this);
snapshotTable->setSelectionMode(QAbstractItemView::SingleSelection);
snapshotTable->setHorizontalHeaderLabels(QStringList() << "ID" << "Tag" << "VM Size" << "Date" << "VM Clock");
snapshotTable->horizontalHeader()->setSectionResizeMode(0, QHeaderView::ResizeToContents);
//snapshotTable->setColumnWidth(0, 45);
snapshotTable->horizontalHeader()->setSectionResizeMode(1, QHeaderView::Stretch);
snapshotTable->horizontalHeader()->setSectionResizeMode(2, QHeaderView::ResizeToContents);
snapshotTable->horizontalHeader()->setSectionResizeMode(3, QHeaderView::ResizeToContents);
snapshotTable->horizontalHeader()->setSectionResizeMode(4, QHeaderView::ResizeToContents);
snapshotTable->verticalHeader()->hide();
snapshotTable->setAlternatingRowColors(true);
//snapshotTable->setSortingEnabled(true);
snapshotTable->setEditTriggers(QTableWidget::NoEditTriggers);
connect(snapshotTable, &QTableWidget::cellPressed, [this, snapshotTableCount](){ clearSnapshotSelectionsExcept(snapshotTableCount); });
snapshotTableCount++;
for (auto snapshot : hdd.getSnapshots()) {
snapshotTable->setRowCount(row + 1);
QTableWidgetItem *id = new QTableWidgetItem(
QString::fromStdString(snapshot.getID()));
QTableWidgetItem *tag = new QTableWidgetItem(
QString::fromStdString(snapshot.getTag()));
QTableWidgetItem *size = new QTableWidgetItem(
QString::fromStdString(snapshot.getSize()));
QTableWidgetItem *date = new QTableWidgetItem(
QString::fromStdString(snapshot.getDate()));
QTableWidgetItem *clock = new QTableWidgetItem(
QString::fromStdString(snapshot.getClock()));
snapshotTable->setItem(row, 0, id);
snapshotTable->setItem(row, 1, tag);
snapshotTable->setItem(row, 2, size);
snapshotTable->setItem(row, 3, date);
snapshotTable->setItem(row, 4, clock);
row++;
}
hddVBox->addWidget(snapshotTable);
QHBoxLayout *addSnapHBox = new QHBoxLayout;
QLineEdit *addSnapNameEdit = new QLineEdit;
QPushButton *addSnapButton = new QPushButton;
addSnapButton->setText("Snapshot erstellen");
addSnapButton->setEnabled(false);
string hddPath = hdd.getPath();
connect(addSnapNameEdit, &QLineEdit::textChanged, [this, addSnapButton, addSnapNameEdit](){ toggleAddSnapshotButton(addSnapButton, addSnapNameEdit); });
connect(addSnapButton, &QPushButton::clicked, [this, hddPath, vmname, addSnapNameEdit](){ createSnapshot(hddPath, vmname, addSnapNameEdit->text().toStdString()); });
addSnapHBox->addWidget(addSnapNameEdit);
addSnapHBox->addWidget(addSnapButton);
//.........这里部分代码省略.........
示例15: switch
//.........这里部分代码省略.........
connect(pAction, SIGNAL(triggered()), this, SLOT(file_AddToGPS()));
MDIWindow::addAction(pAction, true);
break;
case IDataBase::GPSdevice:
{
m_pDb = IGPSDevice::pInstance();
connect(m_pDb, SIGNAL(airSpacesChanged()), this, SLOT(file_update()));
pAction = new QAction(tr("&Delete"), this);
connect(pAction, SIGNAL(triggered()), this, SLOT(file_delete()));
MDIWindow::addAction(pAction);
pAction = new QAction(tr("&Update"), this);
connect(pAction, SIGNAL(triggered()), this, SLOT(file_update()));
MDIWindow::addAction(pAction);
}
break;
case IDataBase::File:
{
m_pDb = NULL;
pAction = new QAction(tr("&Add to GPS..."), this);
connect(pAction, SIGNAL(triggered()), this, SLOT(file_AddToGPS()));
MDIWindow::addAction(pAction, true);
}
break;
}
if(src != IDataBase::SqlDB)
{
pAction = new QAction(tr("Add to DB..."), this);
connect(pAction, SIGNAL(triggered()), this, SLOT(file_AddToSqlDB()));
MDIWindow::addAction(pAction, true);
pAction = new QAction(tr("&Update"), this);
connect(pAction, SIGNAL(triggered()), this, SLOT(file_update()));
MDIWindow::addAction(pAction);
}
// import/export
pAction = new QAction(this);
pAction->setSeparator(true);
MDIWindow::addAction(pAction);
if(src == IDataBase::File)
{
pAction = new QAction(tr("&Import..."), this);
connect(pAction, SIGNAL(triggered()), this, SLOT(file_open()));
MDIWindow::addAction(pAction);
}
pAction = new QAction(tr("&Export all..."), this);
connect(pAction, SIGNAL(triggered()), this, SLOT(exportTable()));
MDIWindow::addAction(pAction);
// view
pAction = new QAction(this);
pAction->setSeparator(true);
MDIWindow::addAction(pAction);
pAction = new QAction(tr("&View..."), this);
connect(pAction, SIGNAL(triggered()), this, SLOT(file_viewAirSpace()));
MDIWindow::addAction(pAction);
pAction = new QAction(tr("View &Web Map..."), this);
connect(pAction, SIGNAL(triggered()), this, SLOT(file_viewWebMap()));
MDIWindow::addAction(pAction, true);
TableWindow::setWindowIcon(QIcon(":/document.xpm"));
// configure the table
pTable->setEditTriggers(QAbstractItemView::NoEditTriggers);
pTable->setSelectionMode(QAbstractItemView::ExtendedSelection);
// header
nameList += tr("Name");
nameList += tr("Low [m]");
nameList += tr("High [m]");
nameList += tr("Class");
nameList += tr("Comment");
setupHeader(nameList);
pTable->setColumnWidth(Name, 200);
pTable->setColumnWidth(High, 100);
pTable->setColumnWidth(Low, 100);
pTable->setColumnWidth(Class, 80);
pTable->setColumnWidth(Comment, 750);
connect(m_pDb, SIGNAL(airSpacesChanged()), this, SLOT(file_update()));
if(src == IDataBase::File)
{
file_open();
}
else
{
file_update();
}
}