ich programmiere Qt 4.6 in Microsoft Visual Studio 2008. Meine Applikation besteht hauptsächlich aus zwei programmen: einer GUI, programmiert mit Qt und einem AD-Wandler programm, das auf eine PCI Karte zugreift. Das AD-Wandeln kann dabei per knopfdruck gestartet werden:
Code: Alles auswählen
connect(m_button_startCapturing,SIGNAL (clicked()), this, SLOT(startCapturing()));
void MainWindow::startCapturing()
{
// Apply all Settings
applySettingsToADCapture();
...
// Start Capturing
adcapture();
...
}
Die Funktion "adcapture" kann nun 1 bis 60 sekunden dauern. Während dieser Zeit reagiert die GUI nicht auf weiter Signale, doch diese werden gespeichert und danach ausgeführt. Wenn z.b. während des capturing Vorgangs der "start" button gedrückt wird, wird der slot danach gleich nochmal ausgeführt. Um dies zu verhindern will ich den knopf irgendwie sperren für die Zeit, die das AD Capture Programm. Wenn ich jedoch den slot wie folgt programmiere:
Code: Alles auswählen
connect(m_button_startCapturing,SIGNAL (clicked()), this, SLOT(startCapturing()));
void MainWindow::startCapturing()
{
m_button_startCapturing->setEnabled(FALSE);
// Apply all Settings
applySettingsToADCapture();
...
// Start Capturing
adcapture();
...
m_button_startCapturing->setEnabled(FALSE);
}
Gruß und Danke im Voraus,
Martin