VisualBasic.NET程序设计:集成开发环境与窗口管理

需积分: 0 0 下载量 24 浏览量 更新于2024-07-13 收藏 608KB PPT 举报
"VisualBasic.NET程序设计 - 第1章 VisualBasic.NET程序开发环境 - 其他窗口" 在VisualBasic.NET(VB.NET)的开发环境中,除了主要的窗口,还存在许多其他辅助窗口,这些窗口根据需求可以自由打开、关闭、隐藏或者调整布局。窗口的显示方式主要有四种:可停靠(Dockable)、隐藏(Hidden)、浮动(Floating)和自动隐藏(Auto-Hide)。 可停靠窗口允许用户将其固定在开发环境的边缘,如顶部、底部、左侧或右侧,以节省屏幕空间并保持工作区域整洁。这种布局方式对于频繁使用的窗口非常实用,因为它始终保持可见且易于访问。 隐藏窗口则会完全从视图中移除,直到用户手动调出。这有助于减少屏幕上的干扰,特别是当处理大项目时,可能需要集中注意力在主要窗口上。 浮动窗口可以在屏幕的任何位置自由移动,提供最大的灵活性。这种方式适合那些需要临时使用的窗口,可以随时调整位置以适应当前的工作流程。 自动隐藏窗口在不使用时会贴边隐藏,使用时只需鼠标靠近,窗口就会自动展开。这种模式结合了可停靠和隐藏的优点,既能节省空间,又能在需要时快速访问。 在VisualStudio.NET环境中,开发者会遇到多种窗口,例如Windows窗体设计器用于创建和编辑应用程序界面,解决方案管理器(Solution Explorer)用于组织项目的文件和依赖项,资源管理器(Resource Explorer)用于管理应用程序中的资源,如图像、图标和字符串,而属性窗口(Property Window)则显示所选对象的属性和设置。 1.1.1 VisualBasic.NET的新特点强调了其作为.NET框架一部分的优势。统一的集成开发环境(IDE)提供了统一的开发体验,无论使用哪种.NET语言。面向对象的特性,如继承、接口和重载,使得代码复用和模块化更为高效。丰富的数据类型扩展了编程能力,改进的窗体引擎提高了用户体验。结构化的错误处理简化了异常处理,方便的Web开发工具让创建Web应用更加直观,新一代的数据访问技术如ADO.NET提供了更高效的数据库交互,多线程支持则允许并行处理任务。 1.1.2 从VB6.0迁移到VB.NET需要注意,旧版的VB程序不能直接在VB.NET中运行或打开,因为VB.NET引入了大量的新特性和语法改变。关键字和语法的更新是为了适应.NET框架,这可能导致一些兼容性问题。因此,升级到VB.NET通常需要对旧代码进行迁移和修改,以确保它们能在新的平台上正确运行。 VB.NET通过引入新的特性和改进,提升了开发效率和代码质量,同时也对开发者提出了适应新环境和学习新技术的要求。理解并掌握这些窗口管理和环境特性,将有助于更有效地使用VisualBasic.NET进行软件开发。

#include "mylogin.h" mylogin::mylogin(QWidget *parent) : QDialog(parent) { this->init_ui(); connect(this->bnt_login, &QPushButton::clicked, this, &mylogin::do_login); connect(this->bnt_register, &QPushButton::clicked , this ,&mylogin::do_enroll); } mylogin::~mylogin() { } void mylogin::init_ui() { this->setFixedSize(QSize(600,350)); this->setWindowTitle(tr("岑超升")); this->setWindowIcon(QIcon(":/src/1.png")); this->lb1 = new QLabel(); this->lb2 = new QLabel(); this->lb3 = new QLabel(); this->lb1->setFixedSize(QSize(560,200)); QPixmap pic; pic.load(":/src/2.png"); //this->lb1->setPixmap(pic.scaled(this->lb1->size(), Qt::KeepAspectRatio, Qt::SmoothTransformation)); this->lb1->setPixmap(QPixmap(":/src/2.png")); this->lb2->setText(tr("用户名:")); this->lb3->setText(tr("密 码:")); this->usr_name_le = new QLineEdit(); //这两个参数后面传入信号中去,然后emit发射出去 this->usr_pass_le = new QLineEdit(); this->usr_pass_le->setEchoMode(QLineEdit::Password); this->bnt_login = new QPushButton(tr("登 陆")); this->bnt_register = new QPushButton(tr("注 册")); this->hb1 = new QHBoxLayout(); this->hb2 = new QHBoxLayout(); this->hb3 = new QHBoxLayout(); this->hb1->addWidget(this->lb2); this->hb1->addWidget(this->usr_name_le); this->hb2->addWidget(this->lb3); this->hb2->addWidget(this->usr_pass_le); this->hb3->addWidget(this->bnt_login); this->hb3->addWidget(this->bnt_register); this->vb1 = new QVBoxLayout(); this->vb1->addWidget(this->lb1); this->vb1->addLayout(this->hb1); this->vb1->addLayout(this->hb2); this->vb1->addLayout(this->hb3); this->setLayout(this->vb1); } void mylogin::do_login() { emit sig_login(usr_name_le->text(), usr_pass_le->text()); //需要把这里输入的账号密码信息发送到myapp那去,用到的函数是emit //需要自定义一个信号,sig_login //这个槽函数能够发出信号 } void mylogin::do_enroll() { emit sig_enroll(); }解释每一行代码

2023-06-09 上传