С другой стороны, в Qt / PyQt говорится, что функция - это слот , если вы используете декоратор @QtCore.pyqtSlot()
. В вашем случае это простая функция. Даже в этом случае для сигнала не будут служить данные, которые возвращают вызванный слот или функцию.
Будет ли это прерывание конфликтовать с механизмом сигнала и слотов?
Нет, конфликт не происходит. Возврат к началу, середине или концу не имеет значения, помните, что каждая функция возвращает что-то (если вы не используете return, функция неявно вернет None в конце).
С другой стороны, в графическом интерфейсе задачи функций должны быть легкими, если они тяжелые, вы должны выполнить их в другом потоке.
This should do it for you:
private void notifyIcon1_Click(object sender, EventArgs e)
{
contextMenuStrip1.Show(Cursor.Position.X, Cursor.Position.Y);
}
Альтернативный метод, который, как я обнаружил, работает немного лучше:
private void notifyIcon1_MouseUp(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
System.Reflection.MethodInfo mi = typeof(NotifyIcon).GetMethod("ShowContextMenu", System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic);
mi.Invoke(notifyIcon1, null);
}
}