精华内容
下载资源
问答
  • 创建列表菜单标签
    千次阅读
    2020-05-29 23:19:22

    用CSS样式对ul、li标签进行控制,实现竖向二级菜单。

    HTML代码:

    <div class="sidemenu">
        <ul>
    		<li><a href="javascript:void(0);" class="one_level_menubar">一级菜单</a>
    			<ul class="two_level_menubar">
    				<li>-<a href="javascript:void(0);">二级菜单</a></li>
    				<li>-<a href="javascript:void(0);">二级菜单</a></li>
    				<li>-<a href="javascript:void(0);">二级菜单</a></li>
    				<li>-<a href="javascript:void(0);">二级菜单</a></li>
    			</ul>
    		</li>
    		<li><a href="javascript:void(0);" class="one_level_menubar">一级菜单</a>
    			<ul class="two_level_menubar">
    				<li>-<a href="javascript:void(0);">二级菜单</a></li>
    				<li>-<a href="javascript:void(0);">二级菜单</a></li>
    				<li>-<a href="javascript:void(0);">二级菜单</a></li>
    				<li>-<a href="javascript:void(0);">二级菜单</a></li>
    			</ul>
    		</li>
    		<li><a href="javascript:void(0);" class="one_level_menubar">一级菜单</a>
    			<ul class="two_level_menubar">
    				<li>-<a href="javascript:void(0);">二级菜单</a></li>
    				<li>-<a href="javascript:void(0);">二级菜单</a></li>
    				<li>-<a href="javascript:void(0);">二级菜单</a></li>
    				<li>-<a href="javascript:void(0);">二级菜单</a></li>
    			</ul>
    		</li>
    		<li><a href="javascript:void(0);" class="one_level_menubar">一级菜单</a>
    			<ul class="two_level_menubar">
    				<li>-<a href="javascript:void(0);">二级菜单</a></li>
    				<li>-<a href="javascript:void(0);">二级菜单</a></li>
    				<li>-<a href="javascript:void(0);">二级菜单</a></li>
    				<li>-<a href="javascript:void(0);">二级菜单</a></li>
    			</ul>
    		</li>
    		<li><a href="javascript:void(0);" class="one_level_menubar">一级菜单</a>
    			<ul class="two_level_menubar">
    				<li>-<a href="javascript:void(0);">二级菜单</a></li>
    				<li>-<a href="javascript:void(0);">二级菜单</a></li>
    				<li>-<a href="javascript:void(0);">二级菜单</a></li>
    				<li>-<a href="javascript:void(0);">二级菜单</a></li>
    			</ul>
    		</li>
    	</ul>
    </div>
    

    CSS部分:

    .sidemenu{
    	width:140px;
    	height:850px;
    	overflow:auto;
    	color:#000080;
    	float:left;
    	line-height:30px;
    	font-size:18px;
    }
    div.sidemenu ul
    {
        list-style:none; 
        margin: 0px; 
        padding: 0px; 
    }
    div.sidemenu ul li
    {
        margin-left:5px; 
    }
    .one_level_menubar
    {
    	font-weight:bold;	
    }
    .two_level_menubar
    {
    	display:none;
    	margin-left:8px; 
    	font-size:14px;
    }
    .two_level_menubar li
    {
    border-left:1px dashed #000000;
    }
    
    div.sidemenu ul li a, div.menu ul li a:visited
    {
        color: #000000; 
    	text-decoration: none; 
        white-space: nowrap; 
       /* margin-left:10px; */
        text-align: center;
    }
    div.sidemenu ul li a:hover
    {
        color: #b22222; 
    }

    JavaScript/JQuery部分:

    $(document).ready(function(){
        $(".one_level_menubar").click(function(){
            $(this).next().slideToggle();
            $(this).parent().siblings().children("ul").slideUp();
        });
    });
    

    实现效果:

    点击一级菜单,展开二级菜单。

    更多相关内容
  • 利用标签创建导航菜单,是一个比较流行的方法.那就跟木木一起来学一下如何使用标签来创一个导航菜单.
  • Dreamweaver网页怎么制作一个带有列表值的下拉菜单?Dreamweaver设计网页的时候,需要添加一个下拉菜单,并且给下拉菜单添加列表值,下面我们就来看看详细的教程,需要的朋友可以参考下
  • Dreamweaver怎么创建下拉菜单

    千次阅读 2021-01-17 18:32:01
    一、在Dreamweaver中创建弹出式菜单1. 点击鼠标,将光标放在表单框线内,点击“插入”菜单,选择“表单”项,在弹出的子菜单中选择“选择(列表/菜单)”命令。或者在“插入”面板中选择“表单”项,点击“选择(列表/...

    一、在Dreamweaver中创建弹出式菜单

    1. 点击鼠标,将光标放在表单框线内,点击“插入”菜单,选择“表单”项,在弹出的子菜单中选择“选择(列表/菜单)”命令。

    或者在“插入”面板中选择“表单”项,点击“选择(列表/菜单)”图标,如下图所示:

    6eb708129a577ffcff4074877d8e3990.png

    点击“窗口”菜单,选择“插入”项,可以打开“插入”面板。

    2. 点击“选择(列表/菜单)”图标后,弹出“输入标签辅助功能属性”对话框,在对话框中设置后,单击“确定”按钮,“选择(列表/菜单)”出现在文档中。

    3. 在文档中点击“选择(列表/菜单)”表单控件,如下图所示:

    63ae945a66ab4aa9bfe707eae312ab41.png

    在“代码”视图中可以查看源代码:

    4. 打开选择(列表/菜单)“属性”面板,如下图所示:

    7acc3a1ba2e3b658d7f9f3bf73e2a246.png

    5. “选择”项:输入名称。name属性。

    6. “类型”项:选择菜单。

    7. “列表值”按钮:点击“列表值”按钮添加菜单选项,出现“列表值”对话框,如下图所示:

    80a2f524ff38d6230b16dcde129a5301.png

    8. 将光标放在“项目标签”列表中,输入需要在列表中出现的文本。

    9. 在“值”列表中输入选取该项目时要发送给服务器的文本或数据。value属性。

    10. 如果还要添加其他项目,点击“+”按钮,然后重复第8和第9步。如果选择某一项,点击“-”按钮,即可删除那一项。

    11. 单击向上、向下按钮对项目进行排序。

    12. 添加项目结束时,点击“确定”按钮关闭“列表值”对话框。

    13. 在“初始化时选定”文本框中选择该菜单的默认列表项。selected属性。

    be3cbbfa98dbd53d489ecb4adb11a94a.png

    14. 在“代码”视图中可以查看源代码:

    网页制作

    网络编程

    二、提示

    将光标定位到表单的红色虚线围成的框内,按回车(Enter)键,可以添加多个弹出式菜单。

    展开全文
  • 使用RadioMenuItem来创建菜单菜单项。将RadioMenuItem类型菜单项添加到ToggleGroup(互斥切换组)类型对象中,使各个RadioMenuItem类型菜单项的选中是相互排斥的效果 本例子实现: 通过setUserData()为每...

    使用RadioMenuItem来创建子菜单的菜单项。将RadioMenuItem类型菜单项添加到ToggleGroup(互斥切换组)类型对象中,使各个RadioMenuItem类型菜单项的选中是相互排斥的效果

    本例子实现:

    通过setUserData()为每个RadioMenuItem定义了一个视觉特效。当ToggleGroup中的菜单项被选中时,对应的特效就会被应用在图片上。当NoEffects菜单项被选中时,setEffect()方法被赋值为null,没有特效应用在图片上

    import javafx.application.Application;
    import javafx.beans.value.ChangeListener;
    import javafx.beans.value.ObservableValue;
    import javafx.event.ActionEvent;
    import javafx.geometry.Insets;
    import javafx.geometry.Pos;
    import javafx.scene.Scene;
    import javafx.scene.control.*;
    import javafx.scene.effect.DropShadow;
    import javafx.scene.effect.Effect;
    import javafx.scene.effect.Glow;
    import javafx.scene.effect.SepiaTone;
    import javafx.scene.image.Image;
    import javafx.scene.image.ImageView;
    import javafx.scene.layout.VBox;
    import javafx.stage.Stage;
    
    import java.util.AbstractMap.SimpleEntry;
    import java.util.Map.Entry;
    
    public class MenuSample extends Application {
    
        final PageData[] pages = new PageData[]{
                new PageData("标题一",
                        "描述一",
                        "名称一"),
                new PageData("标题二",
                        "描述二",
                        "名称二"),
                new PageData("标题三",
                        "描述三",
                        "名称三"),
                new PageData("标题",
                        "描述",
                        "名称")
        };
    
        final String[] viewOptions = new String[]{
                "标题",
                "二项式",
                "图片",
                "描述"
        };
    
        final Entry<String, Effect>[] effects = new Entry[]{//Entry类型数组对象的初始化
                new SimpleEntry<>("褐色特效", new SepiaTone()),//创建一个深褐色特效 用SimpleEntry类型对象保存,key是String 而value 是特效对象
                new SimpleEntry<>("发光特效", new Glow()),//创建一个发光特效,用SimpleEntry类型对象保存,key是String 而value 是特效对象
                new SimpleEntry<>("阴影特效", new DropShadow())//创建一个阴影特效,用SimpleEntry类型对象保存,key是String 而value 是特效对象
        };
    
        final ImageView pic = new ImageView();//创建视图显示区域
        final Label name = new Label();//创建标签对象
        final Label binName = new Label();//创建标签对象
        final Label description = new Label();//创建标签对象
        private int currentIndex = -1;//当前下标值的初始化设置
    
        public static void main(String[] args) {
            launch(args);
        }
    
        @Override
        public void start(Stage stage) {
            stage.setTitle("Menu例子");
            Scene scene = new Scene(new VBox(), 400, 350);//创建一个场景对象,并将场景上挂载一个垂直盒子Vbox布局对象
    
            final VBox vbox = new VBox();//创建一个垂直布局对象
            vbox.setAlignment(Pos.CENTER);//设置vbox对象对齐方式
            vbox.setSpacing(10);//设置vbox对象布局的元素之间的空间距离
            vbox.setPadding(new Insets(0, 10, 0, 10));//设置Vbox对象内边距
            vbox.getChildren().addAll(name, binName, pic, description);//vbox布局器中要添加的被布局元素对象(用vbox对象布局相关Node类型Label标签型对象和ImageView类型对象)
            shuffle();//清晰复原程序
    
            MenuBar menuBar = new MenuBar();//创建一个MenuBar类型对象
    
            // --- Menu File
            Menu menuFile = new Menu("Menu选择图片");
    
            // --- Menu Edit
            Menu menuEdit = new Menu("Menu图片编辑");
    
            // --- Menu View
            Menu menuView = new Menu("Menu菜单三");
    
            //将上文创建的三个Menu对象添加(镶嵌)到MenuBar对象上去
            menuBar.getMenus().addAll(menuFile, menuEdit, menuView);//Menu类型对象都是要镶嵌在MenuBar对象上的
    
            Menu menuEffect = new Menu("图片特效");//创建一个菜单(后续作为子菜单)
            final ToggleGroup groupEffect = new ToggleGroup();//创建一个互斥切换组对象
            for (Entry<String, Effect> effect : effects) {//遍历保存了图形特效的List<SimpleEntry>类型对象
                RadioMenuItem itemEffect = new RadioMenuItem(effect.getKey());//创建一个RadioMenuItem类型菜单选项对象
                itemEffect.setUserData(effect.getValue());//将从SimpleEntry类型对象中获取的vlaue值(Effect类型图像特效对象)作为用户选择数据项内容设置给RadioMenuItem类型对象的用户选择数据内容
                itemEffect.setToggleGroup(groupEffect);//将RadioMenuItem类型对象添加到一个互斥组对象中去
                menuEffect.getItems().add(itemEffect);//将RadioMenuItem类型对象作为选项挂载到前文定义的 图片特效子菜单中
            }
    //No Effects菜单
            final MenuItem noEffects = new MenuItem("无特效");//创建一个普通菜单选项MenuItem类型对象
    
            noEffects.setOnAction((ActionEvent t) -> {//给上文定义的菜单选项对象添加交互事件处理回调函数
                pic.setEffect(null);//将ImageView类型对象pic的特效设置为null
                groupEffect.getSelectedToggle().setSelected(false);//将互斥组ToggleGroup类型对象groupEffect的被选中项的对象对应的选中状态设置为false未选状态
            });
    
    //处理菜单项的选中事件
            groupEffect.selectedToggleProperty().addListener(new ChangeListener<Toggle>() {//ToggleGroup类型对象的互斥选项,选项选中改变交互事件处理回调函数的编写
                public void changed(ObservableValue<? extends Toggle> ov,
                                    Toggle old_toggle, Toggle new_toggle) {
                    if (groupEffect.getSelectedToggle() != null) {
                        Effect effect =
                                (Effect) groupEffect.getSelectedToggle().getUserData();//获取切换组对象ToggleGroup 中选中的互斥选项对象对应的用户选中数据内容,本例中将选中数据内容转换成Effect类型图像特效对象
                        pic.setEffect(effect);//给ImageView类型对象pic添加图形效果
                    }
                }
            });
            //ToggleGroup类型对象的互斥选项,选项选中改变交互事件处理回调函数的编写
            groupEffect.selectedToggleProperty().addListener(
                    (ObservableValue<? extends Toggle> ov, Toggle old_toggle,
                     Toggle new_toggle) -> {
                        if (groupEffect.getSelectedToggle() != null) {
                            //获取切换组对象ToggleGroup类型groupEffect对象 中选中的互斥选项对象对应的用户选中数据内容,本例中将选中数据内容转换成Effect类型图像特效对象
                            Effect effect =
                                    (Effect) groupEffect.getSelectedToggle().getUserData();
                            pic.setEffect(effect);//给ImageView类型对象pic添加图形效果对象effect
                        }
                    });
    
            //向Edit菜单添加菜单项
            menuEdit.getItems().addAll(menuEffect, noEffects);//向图像编辑主菜单添加挂载对应的子菜单和菜单选项
    
    
            ((VBox) scene.getRoot()).getChildren().addAll(menuBar, vbox);//scene对象的根节点元素上添加上文定义的menuBar对象和vbox对象,从场景对象scene对象上获取Vbox类型布局对象,并将前文定义的MenuBar类型对象添加到Vbox布局对象上去
    
            stage.setScene(scene);//舞台上添加场景
            stage.show();//舞台show
        }
    
    
        private void shuffle() {//洗牌程序(清晰复原程序)
            int i = currentIndex;
            while (i == currentIndex) {
                i = (int) (Math.random() * pages.length);
            }
            pic.setImage(pages[i].image);//图片视图区域价值图片
            name.setText(pages[i].name);//label添加文字
            binName.setText("(" + pages[i].binNames + ")");//label添加文字
            description.setText(pages[i].description);//label对象添加文字
            currentIndex = i;
        }
    
        private class PageData {//自定义的类似于pojo类型
            public String name;
            public String description;
            public String binNames;
            public Image image;
    
            public PageData(String name, String description, String binNames) {
                this.name = name;
                this.description = description;
                this.binNames = binNames;
                image = new Image(getClass().getResourceAsStream("archimedes.jpg"));//创建并加载一个图片对象
            }
        }
    }

    ————————————

    适当的时机禁用与启用 无特效选项

     

     

    import javafx.application.Application;
    import javafx.beans.value.ChangeListener;
    import javafx.beans.value.ObservableValue;
    import javafx.event.ActionEvent;
    import javafx.geometry.Insets;
    import javafx.geometry.Pos;
    import javafx.scene.Scene;
    import javafx.scene.control.*;
    import javafx.scene.effect.DropShadow;
    import javafx.scene.effect.Effect;
    import javafx.scene.effect.Glow;
    import javafx.scene.effect.SepiaTone;
    import javafx.scene.image.Image;
    import javafx.scene.image.ImageView;
    import javafx.scene.layout.VBox;
    import javafx.stage.Stage;
    
    import java.util.AbstractMap.SimpleEntry;
    import java.util.Map.Entry;
    
    public class MenuSample extends Application {
    
        final PageData[] pages = new PageData[]{
                new PageData("标题一",
                        "描述一",
                        "名称一"),
                new PageData("标题二",
                        "描述二",
                        "名称二"),
                new PageData("标题三",
                        "描述三",
                        "名称三"),
                new PageData("标题",
                        "描述",
                        "名称")
        };
    
        final String[] viewOptions = new String[]{
                "标题",
                "二项式",
                "图片",
                "描述"
        };
    
        final Entry<String, Effect>[] effects = new Entry[]{//Entry类型数组对象的初始化
                new SimpleEntry<>("褐色特效", new SepiaTone()),//创建一个深褐色特效 用SimpleEntry类型对象保存,key是String 而value 是特效对象
                new SimpleEntry<>("发光特效", new Glow()),//创建一个发光特效,用SimpleEntry类型对象保存,key是String 而value 是特效对象
                new SimpleEntry<>("阴影特效", new DropShadow())//创建一个阴影特效,用SimpleEntry类型对象保存,key是String 而value 是特效对象
        };
    
        final ImageView pic = new ImageView();//创建视图显示区域
        final Label name = new Label();//创建标签对象
        final Label binName = new Label();//创建标签对象
        final Label description = new Label();//创建标签对象
        private int currentIndex = -1;//当前下标值的初始化设置
    
        public static void main(String[] args) {
            launch(args);
        }
    
        @Override
        public void start(Stage stage) {
            stage.setTitle("Menu例子");
            Image image = new Image("https://www.dllg56.com/qt/img/logo-sing.png");
    
    
    
            stage.getIcons().add(image);
            Scene scene = new Scene(new VBox(), 400, 350);//创建一个场景对象,并将场景上挂载一个垂直盒子Vbox布局对象
    
            final VBox vbox = new VBox();//创建一个垂直布局对象
            vbox.setAlignment(Pos.CENTER);//设置vbox对象对齐方式
            vbox.setSpacing(10);//设置vbox对象布局的元素之间的空间距离
            vbox.setPadding(new Insets(0, 10, 0, 10));//设置Vbox对象内边距
            vbox.getChildren().addAll(name, binName, pic, description);//vbox布局器中要添加的被布局元素对象(用vbox对象布局相关Node类型Label标签型对象和ImageView类型对象)
            shuffle();//清晰复原程序
    
            MenuBar menuBar = new MenuBar();//创建一个MenuBar类型对象
    
            // --- Menu File
            Menu menuFile = new Menu("Menu选择图片");
    
            // --- Menu Edit
            Menu menuEdit = new Menu("Menu图片编辑");
    
            // --- Menu View
            Menu menuView = new Menu("Menu菜单三");
    
            //将上文创建的三个Menu对象添加(镶嵌)到MenuBar对象上去
            menuBar.getMenus().addAll(menuFile, menuEdit, menuView);//Menu类型对象都是要镶嵌在MenuBar对象上的
    
            Menu menuEffect = new Menu("图片特效");//创建一个菜单(后续作为子菜单)
            final ToggleGroup groupEffect = new ToggleGroup();//创建一个互斥切换组对象
            for (Entry<String, Effect> effect : effects) {//遍历保存了图形特效的List<SimpleEntry>类型对象
                RadioMenuItem itemEffect = new RadioMenuItem(effect.getKey());//创建一个RadioMenuItem类型菜单选项对象
                itemEffect.setUserData(effect.getValue());//将从SimpleEntry类型对象中获取的vlaue值(Effect类型图像特效对象)作为用户选择数据项内容设置给RadioMenuItem类型对象的用户选择数据内容
                itemEffect.setToggleGroup(groupEffect);//将RadioMenuItem类型对象添加到一个互斥组对象中去
                menuEffect.getItems().add(itemEffect);//将RadioMenuItem类型对象作为选下挂载到前文定义的 图片特效子菜单中
            }
    //No Effects菜单
            final MenuItem noEffects = new MenuItem("无特效");//创建一个普通菜单选项MenuItem类型对象
            noEffects.setDisable(true);// 初始化无特效菜单选项是被禁用的
            noEffects.setOnAction((ActionEvent t) -> {//给上文定义的菜单选项对象添加交互事件处理回调函数
                pic.setEffect(null);//将ImageView类型对象pic的特效设置为null
                groupEffect.getSelectedToggle().setSelected(false);//将互斥组ToggleGroup类型对象groupEffect的被选中项的对象对应的选中状态设置为false未选状态
                noEffects.setDisable(true);//引用无特效选项
            });
    
    //处理菜单项的选中事件
            groupEffect.selectedToggleProperty().addListener(new ChangeListener<Toggle>() {//ToggleGroup类型对象的互斥选项,选项选中改变交互事件处理回调函数的编写
                public void changed(ObservableValue<? extends Toggle> ov,
                                    Toggle old_toggle, Toggle new_toggle) {
                    if (groupEffect.getSelectedToggle() != null) {
                        Effect effect =
                                (Effect) groupEffect.getSelectedToggle().getUserData();//获取切换组对象ToggleGroup 中选中的互斥选项对象对应的用户选中数据内容,本例中将选中数据内容转换成Effect类型图像特效对象
                        pic.setEffect(effect);//给ImageView类型对象pic添加图形效果
                    }
                }
            });
            //ToggleGroup类型对象的互斥选项,选项选中改变交互事件处理回调函数的编写
            groupEffect.selectedToggleProperty().addListener(
                    (ObservableValue<? extends Toggle> ov, Toggle old_toggle,
                     Toggle new_toggle) -> {
                        if (groupEffect.getSelectedToggle() != null) {
                            //获取切换组对象ToggleGroup类型groupEffect对象 中选中的互斥选项对象对应的用户选中数据内容,本例中将选中数据内容转换成Effect类型图像特效对象
                            Effect effect =
                                    (Effect) groupEffect.getSelectedToggle().getUserData();
                            pic.setEffect(effect);//给ImageView类型对象pic添加图形效果对象effect
                            noEffects.setDisable(false);//启用无特效选项
                        }else {
                            noEffects.setDisable(true);//禁用无特效选项
                        }
                    });
    
            //向Edit菜单添加菜单项
            menuEdit.getItems().addAll(menuEffect, noEffects);//向图像编辑主菜单添加挂载对应的子菜单和菜单选项
    
    
            ((VBox) scene.getRoot()).getChildren().addAll(menuBar, vbox);//scene对象的根节点元素上添加上文定义的menuBar对象和vbox对象,从场景对象scene对象上获取Vbox类型布局对象,并将前文定义的MenuBar类型对象添加到Vbox布局对象上去
    
            stage.setScene(scene);//舞台上添加场景
            stage.show();//舞台show
        }
    
    
        private void shuffle() {//洗牌程序(清晰复原程序)
            int i = currentIndex;
            while (i == currentIndex) {
                i = (int) (Math.random() * pages.length);
            }
            pic.setImage(pages[i].image);//图片视图区域价值图片
            name.setText(pages[i].name);//label添加文字
            binName.setText("(" + pages[i].binNames + ")");//label添加文字
            description.setText(pages[i].description);//label对象添加文字
            currentIndex = i;
        }
    
        private class PageData {//自定义的类似于pojo类型
            public String name;
            public String description;
            public String binNames;
            public Image image;
    
            public PageData(String name, String description, String binNames) {
                this.name = name;
                this.description = description;
                this.binNames = binNames;
                image = new Image(getClass().getResourceAsStream("archimedes.jpg"));//创建并加载一个图片对象
            }
        }
    }
    展开全文
  • Qt--纯代码创建简易菜单窗口(附详细讲解)

    千次阅读 多人点赞 2019-08-14 21:40:17
    添加菜单项:菜单项指的是如图所示的对话框里的东西 模态对话框:模态对话框打开时,无法操作其他窗口; 非模态对话框:模态对话框打开时,可以操作其他窗口; 问题对话框:点击后弹出的对话框,样式为: ...

     

    先挂一张效果图:

    添加的部件:

    对话框:

    • 模态对话框
    • 非模态对话框
    • 问题对话框
    • 关于对话框
    • 文件对话框

    工具栏

    状态栏

    文本编辑器

    浮动窗口

    概念介绍:

    添加菜单项:菜单项指的是如图所示的对话框里的东西

    • 模态对话框:模态对话框打开时,无法操作其他窗口;
    • 非模态对话框:模态对话框打开时,可以操作其他窗口;

    问题对话框:点击后弹出的对话框,样式为:

    关于对话框:点击之后弹出的对话框,样式如图:

     

     Lambda表达式,匿名函数对象

    C++11增加的新特性,项目文件:CONFIG+=C++11

    Qt配合信号一起使用,非常方便

    正常的信号槽 connect函数的用法:connect(信号发出者,信号发出者作用::操作,接收者,槽函数作用域::槽函数)

    Lambda表达式下的用法:

               connect(信号发出者,信号发出者作用::操作,
                       [=]()
               {
                    正常槽函数中的操作
               }
    )

    例如:

     

    详细讲解:

    项目创建:除图示外都是下一步

       

    pro工程文件添加代码:(因为一会会用到Lambda表达式)main.cpp里面内容不变

     

    CONFIG += C++11

    main.cpp里面内容不变

    以下为MainWindow.cpp文件下的操作:


    MainWindow.cpp文件中的头文件

    #include "MainWindow.h"
    #include <QMenuBar>                   //菜单栏
    #include <QMenu>                      //菜单
    #include <QAction>                    //菜单项
    #include <QDebug>                     //输出
    #include <QToolBar>                   // 工具栏
    #include <QPushButton>                //按钮
    #include <QStatusBar>                 //状态栏
    #include <QLabel>                     //标签
    #include <QTextEdit>                  //文本编辑区
    #include <QDockWidget>                //浮动窗口
    #include <QDialog>                    //对话框
    #include <QMessageBox>                //标准对话框

    创建菜单栏:

        //菜单栏
             QMenuBar *mBar = menuBar();
             //添加菜单
             QMenu *pFile = mBar->addMenu("对话框");

    创建模态对话框:

               QAction *p1 = pFile->addAction("模态对话框");
               connect(p1,&QAction::triggered,
                       [=]()
               {
                    QDialog dlg;
                    dlg.exec();
                    qDebug() << "模态对话框打开时,无法操作其他";
               }
    
                       );
    pFile->addSeparator(); //添加分割线

    创建非模态对话框:

               QAction *p2 = pFile->addAction("非模态对话框");
               connect(p2,&QAction::triggered,
                       [=]()
               {
                   QDialog *dlg = new QDialog(this);
                   dlg->setAttribute(Qt::WA_DeleteOnClose);     //防止内存泄漏,此函数的作用为关闭对话框时自动释放
                   dlg->show();
                   qDebug() << "非模态对话框打开时,可以操作其他";
               }
    
                       );
               pFile->addSeparator(); //添加分割线

    创建关于对话框:

               pFile->addSeparator(); //添加分割线
    
               QAction *p3 = pFile->addAction("关于对话框");
               connect(p3,&QAction::triggered,
                       [=]()
               {
                    QMessageBox::about(this,"about","充值成功");     //about(父类,标题名,对话框内容);
               }
    
                       );
               pFile->addSeparator(); //添加分割线

    创建问题对话框:

               QAction *p4 = pFile->addAction("问题对话框");
               connect(p4,&QAction::triggered,
                       [=]()
               {
                    QMessageBox::question(this,"question","是否充值");     //question(父类,标题名,对话框内容);
               }
    
                       );
    工具栏:  菜单项的快捷方式:

    第一种创建方式:直接把对话框内的对象传进去,直接显示文字,缺乏美感

               QToolBar *toolBar = addToolBar("toolBar");
               //工具栏添加快捷键
               toolBar->addAction(p1);

    第二种创建方式:以按钮的方式创建

               QPushButton *b = new QPushButton(this);
               b->setText("新建");
               toolBar->addWidget(b);
               connect(b,&QPushButton::clicked,this,&MainWindow::MySlot);
    状态栏:菜单栏底部

    第一种方式:利用label标签的方式

               QStatusBar *sBar = statusBar();
               QLabel *MyLabel = new QLabel(this);
               MyLabel->setText("第一种添加方式 ");
               sBar->addWidget(MyLabel);

     

    第二种方式:直接传参

               sBar->addWidget(new QLabel("addwidget从左往右添加",this));
               sBar->addPermanentWidget(new QLabel("addPermanentWidget从右往左添加",this));

    文本编辑区:

               QTextEdit *MyQTE = new QTextEdit(this); //this当前父类
               setCentralWidget(MyQTE);

    浮动窗口:可以移动的窗口,并可以贴在上下窗体

             

               QDockWidget *dock = new QDockWidget(this);
               addDockWidget(Qt::RightDockWidgetArea,dock);
               //给浮动窗口添加文本编辑区
               QTextEdit *MyDockQTE = new QTextEdit(this);
               dock->setWidget(MyDockQTE);

    更改弹出对话框的按钮名称:

    在QT的帮助文档中QMessageBox的Constant:

    所以你可以通过查看帮助文档找到自己合适的按钮

    将问题对话框的的yes,no改为ok,cancel

                        

    文件对话框:

    open文件夹,显示下拉框,并返回当前文件的路径,打印出来

               pFile->addSeparator(); //添加分割线
    
               QAction *p5 = pFile->addAction("文件对话框");
               connect(p5,&QAction::triggered,
                       [=]()
               {
                   QString path = QFileDialog::getOpenFileName(
                               this,
                               "open",
                               "../",
                               "souce(*.cpp *.h);;"
                               "Text(*.txt);;"
                               "all(*.*)" );
    
                   qDebug() << path;
               }
                       );

    下拉框:

    路径打印:

    源代码:

    其中main函数不变,pro工程文件添加刚刚说的代码;

    MainWindow.h文件:

    #ifndef MAINWINDOW_H
    #define MAINWINDOW_H
    
    #include <QMainWindow>
    
    class MainWindow : public QMainWindow
    {
        Q_OBJECT
    
    public:
        MainWindow(QWidget *parent = 0);
        ~MainWindow();
    
        void MySlot();
    };
    
    #endif // MAINWINDOW_H
    

    MainWindow.cpp文件:

    #include "MainWindow.h"
    #include <QMenuBar>                   //菜单栏
    #include <QMenu>                      //菜单
    #include <QAction>                    //菜单项
    #include <QDebug>                     //输出
    #include <QToolBar>                   // 工具栏
    #include <QPushButton>                //按钮
    #include <QStatusBar>                 //状态栏
    #include <QLabel>                     //标签
    #include <QTextEdit>                  //文本编辑区
    #include <QDockWidget>                //浮动窗口
    #include <QDialog>                    //对话框
    #include <QMessageBox>                //标准对话框
    #include <QFileDialog>                //文件对话框
    
    MainWindow::MainWindow(QWidget *parent)
        : QMainWindow(parent)
    {
        //菜单栏
             QMenuBar *mBar = menuBar();
             //添加菜单
             QMenu *pFile = mBar->addMenu("对话框");
             //添加菜单项,动作
    
             //模态对话框
               QAction *p1 = pFile->addAction("模态对话框");
               connect(p1,&QAction::triggered,
                       [=]()
               {
                    QDialog dlg;
                    dlg.exec();
                    qDebug() << "模态对话框打开时,无法操作其他";
               }
    
                       );
    
    
               //非模态对话框
               pFile->addSeparator(); //添加分割线
    
               QAction *p2 = pFile->addAction("非模态对话框");
               connect(p2,&QAction::triggered,
                       [=]()
               {
                   QDialog *dlg = new QDialog(this);
                   dlg->setAttribute(Qt::WA_DeleteOnClose);     //防止内存泄漏,此函数的作用为关闭对话框时自动释放
                   dlg->show();
                   qDebug() << "非模态对话框打开时,可以操作其他";
               }
    
                       );
    
    
               //关于对话框
               pFile->addSeparator(); //添加分割线
    
               QAction *p3 = pFile->addAction("关于对话框");
               connect(p3,&QAction::triggered,
                       [=]()
               {
                    QMessageBox::about(this,"about","充值成功");     //about(父类,标题名,对话框内容);
               }
    
                       );
    
    
               //问题对话框
               pFile->addSeparator(); //添加分割线
    
               QAction *p4 = pFile->addAction("问题对话框");
               connect(p4,&QAction::triggered,
                       [=]()
               {
                    QMessageBox::question(this,"question","是否充值",QMessageBox::Ok,QMessageBox::Cancel);     //question(父类,标题名,对话框内容);
               }
    
                       );
    
    
               //文件对话框
               pFile->addSeparator(); //添加分割线
    
               QAction *p5 = pFile->addAction("文件对话框");
               connect(p5,&QAction::triggered,
                       [=]()
               {
                   QString path = QFileDialog::getOpenFileName(
                               this,
                               "open",
                               "../",
                               "souce(*.cpp *.h);;"
                               "Text(*.txt);;"
                               "all(*.*)" );
    
                   qDebug() << path;
               }
                       );
    
    
        //工具栏  菜单项的快捷方式
               QToolBar *toolBar = addToolBar("toolBar");
               //工具栏添加快捷键
               toolBar->addAction(p1);
                //添加小控件
               QPushButton *b = new QPushButton(this);
               b->setText("新建");
               toolBar->addWidget(b);
               connect(b,&QPushButton::clicked,this,&MainWindow::MySlot);
    
        //状态栏
               QStatusBar *sBar = statusBar();
               QLabel *MyLabel = new QLabel(this);
               MyLabel->setText("第一种添加方式 ");
               sBar->addWidget(MyLabel);
               // addwidget从左往右添加
               sBar->addWidget(new QLabel("addwidget从左往右添加",this));
               sBar->addPermanentWidget(new QLabel("addPermanentWidget从右往左添加",this));
        //文本编辑区
               QTextEdit *MyQTE = new QTextEdit(this);
               setCentralWidget(MyQTE);
        //浮动窗口
               QDockWidget *dock = new QDockWidget(this);
               addDockWidget(Qt::RightDockWidgetArea,dock);
               //给浮动窗口添加文本编辑区
               QTextEdit *MyDockQTE = new QTextEdit(this);
               dock->setWidget(MyDockQTE);
    
    }
    
    void MainWindow::MySlot(){
        qDebug() << "新建成功";
    }
    
    MainWindow::~MainWindow()
    {
    
    }
    

     

    展开全文
  • 用HTML ul、li标签创建横向导航菜单

    千次阅读 2020-05-29 15:38:30
    用CSS样式对ul、li标签进行控制,实现横向导航菜单栏。 HTML代码: <div class="menu"> <ul> <li><a href="javascript:void(0);">菜单样式</a></li> <li><a ...
  • 导航标签

    千次阅读 2021-06-13 09:06:02
    导航标签用于生成前台导航,相关的有三个标签navigation,navigationMenu,navigationFolder,三个必须联合使用navigation标签标签名作用包含属性navigation导航标签nav-id,root,id,class标签属性:| 标签属性名 | 含义 |...
  • 原创dreamweaver cs6中网页制作一个带有列表下拉菜单的详细操作方法编辑:小禾 来源:PC下载网时间:2019-07-08 14:01:41很多的程序员们都在使用dreamweaver cs6软件,不过你们晓得dreamweaver cs6中网页怎么制作一个带...
  • html中表单的标签是什么

    千次阅读 2021-06-14 08:26:05
    form标签用于为用户输入创建HTML表单,包含input、label、select等其他元素。本教程操作环境:windows7系统、CSS3&&HTML5版、Dell G3电脑。标签定义及用法在html中,标签是使用来创建供用户输入的html表单,...
  • 列表标签

    千次阅读 2019-05-28 10:44:42
    列表标签列表标签 标签ul标签的 可选的属性 标签的 compact 属性 标签的 type 属性ul标签 的type属性 的属性值 标签ol标签 的属性 reversed 属性 标签的 start 属性 标签的 type 属性ol标签 type属性 的属性值 标签 ...
  • 微信服务号开发----创建个性化菜单

    千次阅读 2017-01-09 21:03:52
    1、目的:让公众号的不同用户群体看到不一样的自定义菜单。 2、权限:已认证订阅号和已认证服务号。 3、分组 1、用户分组(开发者的业务需求可以借助用户分组来完成) 2、性别 3、手机操作系统 4、地区(用户在...
  • 方法一:通过app.json配置底部菜单(常用) 小程序根目录下的app.json文件用来对微信小程序进行全局配置。文件内容为一个 JSON 对象,全局配置 | 微信开放文档微信开发者平台文档...
  • 本文是关于为ASP.NET Core创建动态菜单系统。 在开发新的Web应用程序时,我们想要添加一个基于当前路由和参数动态生成的菜单组件。 我最初研究了ASP.NET Core中partials的概念,虽然这些对于重用静态标记非常有用...
  • select控件 select控件可以创建选择框。...标签用来创建下拉列表,<option>标签定义了列表中的可用选项。基本结构如下: <select name=""> <option value=" ">选项1</option>
  • 思路(这个属于伪模板标签,将就着用吧): 1.自己先创建一个模板库 &lt;?php namespace app\common; use think\template\TagLib; use think\Db;... // 标签定义: attr 属性列表 close 是否...
  • 用HTML中的列表标签做一个导航栏吧

    万次阅读 2016-12-11 21:40:18
    首先要知道的:HTML中的列表标签都有那些呢? ul-li无序列表 ( 网页中显示的默认样式一般为:每项 li 前都自带一个圆点 ) 语法: 文本 文本 </ul>2.ol-li有序列表(在网页中显示的默认样式一般为:每项 li 前都自带...
  • 前端基础—— 表单标签(表单域,input的type属性和其他属性,label标签,文本域标签,下拉菜单,默认值)
  • 大家可能经常看到一些微信公众号具有功能强大的自定义菜单,点击之后可以访问很多有用的功能。 这篇教程就教大家如何动手做一做。 这个教程最后实现的效果是:创建一个...文档里给了创建自定义菜单需要维护参数的H...
  • 下拉菜单: 下拉菜单是比较常见的 直接看源码: .dropdown表示下拉框 按钮和下拉框都要放在dropdown类的div下 ...span+.caret类可以创建一个插入箭头图标 .dropdown-menu类添加到&amp;amp;amp;amp;amp;lt;u
  • 编写一个 JFrame 窗口,要求如下:   1.窗口包含一个菜单栏和一个 JLabel... 3.JLabel 标签放置在窗口的中间(即 BorderLayout.CENTER),当点击菜单项的时候,菜单项中的文本显示的 JLabel 标签中。 import ja...
  • HTML5列表标签

    千次阅读 2018-03-04 01:07:17
    列表标签原创 2014年07月03日 20:16:37标签:HTML1104 列表(List),就是在网页中将相关资料以条目的形式有序...另外,还有不太常用的目录列表菜单列表。 列表类型与标记符号列表类型标记符号列表类型标记符号...
  • Tkinter-创建窗口实例

    千次阅读 2019-05-31 23:07:35
    # 创建Label标签,第一个参数意思是,将label标签对象加入主窗口mw中 w = Label ( mw , text = "Hello World!Hello Tkinter!" ) # 布局设置 w . pack ( ) # 启动主窗口循环 mw . mainloop ( ) ...
  • 最近遇到后台管理系统要写一个tagsview形式的标签导航栏。然后我新手不了解怎么做的,就去百度搜了一下,看到的都是一大段代码,复制也不生效,也没有介绍说怎么用,也不说思路,完全看不懂,后来自己研究慢慢试错,...
  • 扫码关注的技术步骤这里就不再一一...微信公众号进行开发时开启服务器配置,配置中填写了一个入口url,在这之前把自定义菜单的生成放在了这个入口url,以为每次进入公众号首页,都会重新生成一次自定义菜单,然后显示出
  • Cocos2d-JS中标签菜单

    千次阅读 2016-04-12 14:20:44
    一、标签 Cocos2d-JS中标签类重要有三种,cc.LabelTTF、cc.LabelAtlas和cc.LabelBMFont 1.cc.LabelTTF cc.LabelTTF是使用系统中的字体,它是最简单的标签类。cc.LabelTTF继承了cc.Node类,具有cc.Node的基本特性...
  • 我们平时使用最多的就是创建菜单了,往往我们执行了创建菜单的代码后,菜单并不会当即在我们关注过的公众号上显示出来,我们可以通过重新关注的方法,来查看我们创建或更改后的菜单。下面就来跟笔者来学一学这些接口...
  • Semantic UI 之 下拉菜单 dropdown

    千次阅读 2020-08-10 14:41:29
    第一步:创建项目 添加JQuery和Semantic UI包、创建dropdown.html页面: 第二步:dropdown.html页面 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>...
  • 今日再看21天学通python这本书,在做第二十章的例子的时候,发现没有出现菜单栏。本来的源代码如下:#coding:utf-8#file:findfat1.pyimport tkinterimport tkinter.messageboxclass Windows: def __init__(self): ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 166,704
精华内容 66,681
关键字:

创建列表菜单标签