标签: modality

如何在运行时更改QDialog的模态?

我有一个QDialog,我读了很多关于show(),exec()和open()的差异.不幸的是,我从来没有找到一个解决方案来改变运行时对话框的模态.我有一个应用程序,从那里我的QDialog启动.我在这个对话框中有一个切换按钮,点击它,QDialog应该改变模态,这样就可以与应用程序进行交互 - 但这不应该一直发生 - 只要选中切换按钮.

有可能吗?我无法解决设置setModal(true/false)的问题,这只是允许我启动它模态,切换按钮并将其设置为非模态,但后来我不能回到模态.

这里有一些代码:

启动对话框:

从主窗口:

_dialog = new ToggleModalDialog(this, id, this);
_dialog->setWindowModality(Qt::ApplicationModal);
_dialog->open();
Run Code Online (Sandbox Code Playgroud)

这里是ToggleModalDialog中的切换槽

void ToggleModalDialog::changeModality(bool checkState)
{
    if(checkState)
    {
        this->setWindowModality(Qt::NonModal);
        ui->changeModalityButton->setChecked(true);
        this->setModal(false);
    }
    else
    {
        this->setWindowModality(Qt::ApplicationModal);
        ui->changeModalityButton->setChecked(true);
    }
Run Code Online (Sandbox Code Playgroud)

提前致谢!

c++ qt qdialog modality

4
推荐指数
1
解决办法
9127
查看次数

如何使JDialog不总是位于父级之上

我有一个生成两个JDialogs的JFrame。这三个窗口中的每个窗口都必须是可聚焦的(这是我当前编写的方式),但是JFrame不会放在对话框的顶部。当您单击任一对话框时,它们会彼此弹出(就像一个人所期望的那样),但是JFrame只是拒绝出现在最前面。

我需要它们保留JDialogs(而不是JFrames本身),因为大多数当前行为都是可取的(即,当另一个窗口/应用程序阻止任何或所有窗口时,如果选择任何窗口,它们都位于最前面) (而三个JFrame只会导致选中的一个出现)。

我的JDialogs构造函数可以达到以下效果:

SubDialog(JFrame parent /*, a handful, ofOther arguments */){
    super(parent, ModalityType.MODELESS); //not even the modeless helped
    setAlwaysOnTop(false); //not even the not always on top helped
    setUndecorated(true); //maybe this has something to do with it (unlikely, just fyi)?

    //some simple variable assignments

}
Run Code Online (Sandbox Code Playgroud)

我什至试图setAlwaysOnTop(true)在我的JFrame中扔一个。没有骰子。我感到绝望,甚至尝试了以下数字之一:

MyJFrame(String title){
    super(title);
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    addWindowFocusListener(new WindowAdapter(){
        public void windowGainedFocus(WindowEvent e){
            final Window w = e.getWindow();

            //PLEASE come to the front
            w.toFront();

            //even MOAR desperation
            SwingUtilities.invokeLater(new Runnable(){
                public void run(){
                    w.toFront(); //STILL no …
Run Code Online (Sandbox Code Playgroud)

java swing jdialog modality

4
推荐指数
1
解决办法
2206
查看次数

单个系列中两个 DICOM 图像的相同实例编号

我有两个来自同一系列的图像,但两个图像的实例编号都与 6相同。这可能吗????根据我的理解,系列实例编号对于该系列中的图像来说是唯一的。所以请帮助我......无论如何,是否可以从模态工作站????

dicom modality

4
推荐指数
1
解决办法
1565
查看次数

无法制作JDialog模态

我试图在单击"注册"按钮时打开一个新的JDialog ..
但我无法制作JDialog模式..
我尝试过setModal(true)和setModalityType(ModalityType.DOCUMENT_MODAL); 但没有运气..(我正在使用Eclipse的WindowBuilder插件)
PS:我是JAVA的新手..
这是我的代码......

import java.awt.BorderLayout;
import java.awt.Dialog.ModalityType;
import java.awt.EventQueue;
import java.awt.FlowLayout;
import java.awt.Frame;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JScrollPane;
import javax.swing.JLabel;
import java.awt.Color;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
import javax.swing.ImageIcon;
import javax.swing.JDialog;
import javax.swing.JList;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
import javax.swing.JPasswordField;
import javax.swing.JComboBox;
import javax.swing.JButton;
import javax.xml.ws.handler.MessageContext;


public class loginpage extends JFrame {

    private JPanel contentPane;
    private JTextField userid;
    private JPasswordField password;

    /**
     * Launch the …
Run Code Online (Sandbox Code Playgroud)

java swing jframe jdialog modality

3
推荐指数
1
解决办法
8224
查看次数

以模态弹出窗口的形式打开 aspx 页面

我有一个带有编辑选项的网格,在单击编辑按钮时,我需要重定向到一个编辑页面。要求是将此编辑页面作为背景(上一页)变灰的弹出窗口。

我尝试了模态弹出窗口,但控件位于单独的页面上。

我尝试了带有面板和 Iframe 的模式弹出窗口:这有效..但是出现了另一个问题。我需要在“保存”或“取消”按钮上关闭页面但单击。这些控件将在编辑页面上而不是在上一个页面上页面。任何帮助表示赞赏。

谢谢拉贾特

asp.net modality

0
推荐指数
1
解决办法
3万
查看次数

标签 统计

modality ×5

java ×2

jdialog ×2

swing ×2

asp.net ×1

c++ ×1

dicom ×1

jframe ×1

qdialog ×1

qt ×1