窗体

c++.net学习笔记

断了今生、忘了曾经 提交于 2019-12-04 23:17:18
Notes for c++ learning 程序根据什么特征来区分调用哪个重载函数? 只能靠参数而不能靠返回值类型的不同来区分重载函数。 编译器根据参数为每个重载函数产生不同的内部标识符 在Visual Studio .Net开发环境中,在代码编辑器内输人对象的名称后将自动显示出对应的属性、方法、事件列表,以方便选择和避免书写错误,这种技术被称为_智能感知_ 一个解决方案可以有多个项目 CLR是公共语言运行库 跟踪句柄——(gcnew)相当于c语言的指针 引用不分配内存——不能为空,因为不是定义一个变量,只表示是该用户名是目标变量名的一个别名。 引用前面用&符号,引用使用很简单比较指针(某一变量的位置)。 引用是给某一变量多取一个别名,当建立引用时,程序用另一个变量或对象目标的名字初始化它。缺点是定义之后不能改变8 托管代码和非托管代码:为CLR而编写以及使用CLR服务的代码叫"托管代码",而那些未使用CLR服务的代码(也就是你多年以来一直编写的代码),依赖于平台和语言叫"非托管代码"。 rand()_生成伪随机数;rand()%max表示产生0-max的随机数;a+rand()%(b-a+1)表示产生【a,b】之间的整数。产生不重复的随机数 array与arraylist:array是本地的程序组件或者数据结构,但是arraylist是一个来自Java集合类的类,一个接口

Qt之布局管理——堆栈窗体QStackedWidget

ぃ、小莉子 提交于 2019-12-04 21:29:28
1. 控件位置 Containers→StackedWidget 2.控件介绍 StackedWidget控件中文称作“控件栈”。Qt提供了这样一个控件栈,可以使开发人员用栈管理控件像用栈管理其他数据类型一样简单。控件栈只显示栈顶的控件。开发人员可以使用raiseWidget()函数把栈中任何其他控件移到栈顶,从而实现控件之间的切换。 3.控件设置选项 在Stacked Widget控件的properties选项中,一般常对以下选项进行设置。 name:该控件对应源代码中的名称; currentPage:当前活动的页面; pageName:当前活动页的名称; font:设置该控件内部文本的字体。 4.常用成员函数 1) QWidgetStack::QWidgetStack ( QWidget *parent = 0, const char *name = 0 ) 构造一个名称为name、父对象为parent的WidgetStack。 2) int QWidgetStack::addWidget ( QWidget *w, int id = -1 ) 把控件w添加到该控件栈中,标识是id。 3) int QWidgetStack::id ( QWidget *w ) const 返回控件w的标识。 4) void QWidgetStack::raiseWidget ( int

关于Qt控件布局的使用总结

荒凉一梦 提交于 2019-12-04 21:21:28
1.空白(margin)和间距(spacing) margin)和间距(spacing)。 空白指的是整个布局四周距离窗体边缘的距离; 间距指的是布局管理器内部各个窗口部件之间的距离。 空白属性即margin(),间距属性即spacing(),它们的默认值是有窗体的风格决定的。Qt 的默认风格下,子窗体部件的margin()的值是9 英寸。spacing()的值与margin()相同。 void QLayout::setContentsMargins ( int left, int top, int right, int bottom ) 其中,left, top, right, 和bottom 表示环绕在布局周围的空白。对于QGridLayout 和QFormLayout,不要使用setSpacing()方法,而是要分别使用setHorizontalSpacing()和setVerticalSpacing()方法来设置水平和垂直方向。 2.大小约束(size constraint) 获取和设置该属性值可以通过QWidget::layout()来获取主窗口部件的布局管理器,然后可以调用QLayout::sizeConstraint()函数来查看当前的设置情况,然后再通过QLayout::setSizeConstraint()函数来设置该布局管理器的sizeConstraint 属性

WPF最小化窗体后激活函数显示不了窗体

自古美人都是妖i 提交于 2019-12-04 21:01:25
WPF最小化窗体后激活函数显示不了窗体 今天测试小哥给我提了一些问题,其中一个问题是这样的,点击web端的一个链接,是能启动本地的一个应用程序的,如果本地应用程序已启动(通过tcp进程间通信),那么应该要能显示这个本地应用窗口。但是他测试的时候发现并没有预期的效果。 经过多次测试后,发现无效的情况是在窗体设置为最小化的时候,激活显示不了窗体,如果这个窗体只是在其它窗体后面是可以激活的。 测试代码如下: public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); this.WindowState = WindowState.Maximized; this.SleepShow(); } public void SleepShow(double sleep = 5) { DispatcherTimer dispatcherTimer = new DispatcherTimer(); dispatcherTimer.Interval = TimeSpan.FromSeconds(sleep); dispatcherTimer.Tick += (sender, e) => { this.Activate(); Console.WriteLine("激活显示窗体"); };

C#通过反射调用类及方法

狂风中的少年 提交于 2019-12-04 20:09:31
反射有个典型的应用,就是菜单的动态加载,原理就是通过反射调用某个窗体(类)。下面演示一下通过反射调用类及方法: 1、新建一个类,命名为:ReflectionHelper,代码如下: #region 创建对象实例 /// <summary> /// 创建对象实例 /// </summary> /// <typeparam name="T">对象类型</typeparam> /// <param name="assemblyName">程序集名称</param> /// <param name="nameSpace">命名空间</param> /// <param name="className">类名</param> /// <returns></returns> public static T CreateInstance<T>(string assemblyName, string nameSpace, string className) { try { //命名空间.类名,程序集 string path = nameSpace + "." + className + "," + assemblyName; //加载类型 Type type = Type.GetType(path); //根据类型创建实例 object obj = Activator.CreateInstance

两个窗体通过委托来传值

你。 提交于 2019-12-04 17:39:12
public partial class Form4 : Form { public string str = ""; public Form4() { InitializeComponent(); } private void Form4_Load(object sender, EventArgs e) { Form5 f5 = new Form5(); f5.change = new Form5.mydelegate(ChangeText);//将方法绑定到form5中 f5.Show(); } public void ChangeText(string s) {     this.label1.Text=s;}//事件处理的方法 }}    public partial class Form5 : Form { public delegate void mydelegate(string ss);//定义委托原型所封装的方法类型 public Form5() { InitializeComponent(); } public mydelegate change; private void button1_Click(object sender, EventArgs e) { change(this.label1.Text);//通过点击按钮来触发change } }   

第十二周编程总结

五迷三道 提交于 2019-12-04 16:54:45
学习总结: 本周主要学习了容器和事件处理 1.JPanel 可以将多个组件加入到JPanel中以实现复杂的排列,一个界面只可以有一个JFrame窗体组件,但是可以有多个JPanel面板组件,而JPanel上也可以使用FlowLayout,BorderLayout,GridLayout等各种###布局管理器,这样可以组合使用,达到较为复杂的布局效果。 2.JSplitPane JSplitPane主要功能是分割面板,可以将一个窗体分为两个子窗体,可以是水平排列也可以是垂直排列 3.JTabbedPane JTabbedPane创建的选项卡可以通过单击标题或者图标在选项卡之间进行切换。 4.JScrollPane JScrollPane类主要功能就是为显示内容加入水平滚动条 常用方法及常量 事件处理: 事件和监听器 窗体事件及监听适配器 WindowListener时专门处理窗体事件的监听接口,一个窗体的所有变化,如窗口打开、关闭等都可以使用这个接口进行监听 5.文本组件: 单行文本输入框:JTextField 密码文本输入框:JPasswordField 来源: https://www.cnblogs.com/jiajia2333/p/11875056.html

第十二周Java总结

人盡茶涼 提交于 2019-12-04 16:26:44
一、总结 容器 JPanel类 JPanel类能够完成各种复杂的界面显示。 JSplitPane类 JSplitPane类的主要功能是分割面板,可以将一个窗体分为两个子窗体,可以是水平排列,也可以是垂直排列。 JTabbedpane类 JTabbedpane类是在一个面板上设置多个选项卡供用户选择。 JScrollPane类 JScrollPane类主要包括JViewport和JScrollBar两部分组成,前者主要是显示一个矩形的区域让用户浏览,而后者主要是形成水平或垂直的滚动条。 JDesktopPane类与JInternalFrame类 JDesktopPane类规定了一个父窗体的基本形式,而JInternalFrame类规定了各个子窗体,JInternalFrame类不能单独使用。 事件处理 EventObject类 定义格式: public class EventObject extends Object implements Serializable{ public EventObject(Object source) { //构造一个发生事件的对象 } public Object getSource() { //返回一个事件对象 } public String toString() { //得到信息 } } 来源: https://www.cnblogs.com

第十二周课程总结

耗尽温柔 提交于 2019-12-04 16:25:05
这一周我们主要学了其他容器和事件处理 1.JPanel JPanel可以完成各种复杂的界面显示。在JPanel中可以加入任意的组件,然后直接加入到JPanel容器显示即可。 import java.awt.*; import javax.swing.*; public class JavaJPanel { public static void main(String[] args) { // int i; JFrame f=new JFrame("JPane窗体"); JPanel pan=new JPanel(); pan.add(new JLabel("标签-A")); pan.add(new JLabel("标签-B")); pan.add(new JLabel("标签-C")); pan.add(new JButton("按钮-X")); pan.add(new JButton("按钮-Y")); pan.add(new JButton("按钮-Z")); f.add(pan); f.pack(); Point p=new Point(300,200); f.setLocation(p); f.setVisible(true); } } 2.JSplitPane JSplitPane主要功能是分割面板,可以将一个窗体分为两个子窗体,可以是水平排列也可以是垂直排列 常用方法