本文整理汇总了C++中QTableWidget::mapToGlobal方法的典型用法代码示例。如果您正苦于以下问题:C++ QTableWidget::mapToGlobal方法的具体用法?C++ QTableWidget::mapToGlobal怎么用?C++ QTableWidget::mapToGlobal使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类QTableWidget
的用法示例。
在下文中一共展示了QTableWidget::mapToGlobal方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: rbClicked
void MPConfig::rbClicked(QTableWidgetItem* item)
{
if (item == 0)
return;
QString id = item->tableWidget()->item(item->row(), DEVCOL_NO)->text();
int no = atoi(id.toLatin1().constData()) - 1;
if (no < 0 || no >= kMaxMidiPorts)
return;
int n;
MidiPort* port = &midiPorts[no];
MidiDevice* dev = port->device();
int rwFlags = dev ? dev->rwFlags() : 0;
int openFlags = dev ? dev->openFlags() : 0;
QTableWidget* listView = item->tableWidget();
QPoint ppt = listView->visualItemRect(item).bottomLeft();
QPoint mousepos = QCursor::pos();
int col = item->column();
ppt += QPoint(0, listView->horizontalHeader()->height());
ppt = listView->mapToGlobal(ppt);
switch (col)
{
case DEVCOL_GUI:
if (dev == 0)
//break;
return;
// falkTX, we don't want this in the connections manager
//if (port->hasGui())
//{
// port->instrument()->showGui(!port->guiVisible());
// item->setIcon(port->guiVisible() ? QIcon(*dotIcon) : QIcon(*dothIcon));
//}
//break;
return;
case DEVCOL_CACHE_NRPN:
if (!dev)
return;
dev->setCacheNRPN(!dev->cacheNRPN());
item->setIcon(dev->cacheNRPN() ? QIcon(*dotIcon) : QIcon(*dothIcon));
return;
case DEVCOL_REC:
if (dev == 0 || !(rwFlags & 2))
return;
openFlags ^= 0x2;
dev->setOpenFlags(openFlags);
midiSeq->msgSetMidiDevice(port, dev); // reopen device
item->setIcon(openFlags & 2 ? QIcon(*dotIcon) : QIcon(*dothIcon));
if (dev->deviceType() == MidiDevice::JACK_MIDI)
{
if (dev->openFlags() & 2)
{
item->tableWidget()->item(item->row(), DEVCOL_INROUTES)->setText(tr("in"));
}
else
{
item->tableWidget()->item(item->row(), DEVCOL_INROUTES)->setText("");
}
}
return;
case DEVCOL_PLAY:
if (dev == 0 || !(rwFlags & 1))
return;
openFlags ^= 0x1;
dev->setOpenFlags(openFlags);
midiSeq->msgSetMidiDevice(port, dev); // reopen device
item->setIcon(openFlags & 1 ? QIcon(*dotIcon) : QIcon(*dothIcon));
if (dev->deviceType() == MidiDevice::JACK_MIDI)
{
if (dev->openFlags() & 1)
{
item->tableWidget()->item(item->row(), DEVCOL_OUTROUTES)->setText(tr("out"));
}
else
{
item->tableWidget()->item(item->row(), DEVCOL_OUTROUTES)->setText("");
}
}
return;
case DEVCOL_INROUTES:
case DEVCOL_OUTROUTES:
{
if (!checkAudioDevice())
return;
if (audioDevice->deviceType() != AudioDevice::JACK_AUDIO) //Only if Jack is running.
return;
if (!dev)
//.........这里部分代码省略.........
示例2: channelItemClicked
void FluidSynthGui::channelItemClicked(QTableWidgetItem* item)
{
int col = item->column();
int row = item->row();
if (col == FS_SF_ID_COL) {
QMenu* popup = new QMenu(this);
QPoint ppt = channelListView->visualItemRect(item).bottomLeft();
QTableWidget* listView = item->tableWidget();
ppt += QPoint(listView->horizontalHeader()->sectionPosition(col), listView->horizontalHeader()->height());
ppt = listView->mapToGlobal(ppt);
int i = 0;
for (std::list<FluidGuiSoundFont>::reverse_iterator it = stack.rbegin(); it != stack.rend(); it++) {
i++;
/*byte* d = (byte*) it->name.toLatin1();
for (int i=0; i<96; i++) {
if (i%16 == 0)
printf("%x:",(i+d));
printf("%x ",*(d-48+i));
if (i%16 == 15)
printf("\n");
}
for (int i=0; i<96; i++) {
if (i%16 == 0)
printf("%x:",(i+d-48));
printf("%c ",*(d-48+i));
if (i%16 == 15)
printf("\n");
}
printf("\n\n");*/
QAction* act1 = popup->addAction(it->name);
act1->setData(i);
}
int lastindex = i+1;
QAction *lastaction = popup->addAction("unspecified");
lastaction->setData(lastindex);
QAction * act = popup->exec(ppt, 0);
if (act) {
int index = act->data().toInt();
byte sfid;
QString fontname;
if (index == lastindex) {
sfid = FS_UNSPECIFIED_ID;
fontname = "unspecified"; //Actually, it's not possible to reset fluid-channels as for now,
} //so this is just a dummy that makes the synth block any events for the channel
else {
sfid = getSoundFontId(act->text());
fontname = getSoundFontName(sfid);
}
//byte channel = atoi(item->text().toLatin1()) - 1;
byte channel = row;
sendChannelChange(sfid, channel);
item->setText(fontname);
}
delete popup;
}
// Drumchannel column:
else if (col == FS_DRUM_CHANNEL_COL) {
QMenu* popup = new QMenu(this);
QPoint ppt = channelListView->visualItemRect(item).bottomLeft();
QTableWidget* listView = item->tableWidget();
ppt += QPoint(listView->horizontalHeader()->sectionPosition(col), listView->horizontalHeader()->height());
ppt = listView->mapToGlobal(ppt);
QAction * yes = popup->addAction("Yes");
yes->setData(1);
QAction * no = popup->addAction("No");
no->setData(0);
//byte channel = atoi(item->text().toLatin1()) - 1;
byte channel = row;
QAction * act2 = popup->exec(ppt, 0);
if (act2) {
int index = act2->data().toInt();
if (index != drumchannels[channel]) {
sendDrumChannelChange(index, channel);
drumchannels[channel] = index;
item->setText(index == 0 ? "No" : "Yes" );
}
}
delete popup;
}
}