学习《父与子的编程之旅 python》修正20-3 'MyWindowClass' object has no attribute 'btn_CtoF'

在学习《父与子的编程之旅 Python》过程中遇到一个错误,报错信息为'MyWindowClass' object has no attribute 'btn_CtoF'。经过两天排查,发现是由于使用了pyqt4的教程,但本地环境为pyqt5。错误原因在于tempconv.ui文件中的属性名与代码不匹配,修正库导入及Qt模块名,并调整ui文件中属性名,问题得到解决。
摘要由CSDN通过智能技术生成
  • 对照着找了两天的错误

  • 以及解决办法,开始以为是pyqt4(教材)与pyqt5(本机环境)不同造成的,一直没有检查对比tempconv.ui文件,直到问题解决。

  • 两处要保持一致,仅仅是多了一条下划线。

  • 引入库from pyqt4 肯定是要改成 from pyqt5。

  • QtGui要改成QtWidg

  • 报错代码如下:

  • 错误提示: AttributeError: 'MyWindowClass' object has no attribute 'btn_CtoF'

 - class MyWindowClass(QtWidgets.QMainWindow, form_class):
    def __init__(self
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,让我们开始吧! 在C/C++游戏开发中,窗体是非常重要一部分。我们可以在窗体上添加种控件和图形,让游戏更丰富多彩。 首先,我们需要创建一个窗体。使用Windows API或第方库来创建窗体例如MFC、Qt、wxWidgets等。里以Windows API为例,代码如下: c++ #include <Windows.h> LRESULT CALLBACK WProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParamint WINAPI WinMain(HINSTANCE hInstance, H hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { // 创建窗口类 WNDCLASS wc = { 0 }; wc.lpfnWndProc = WndProc; wc.hInstance = hInstance; wc.hbrBackground = (HBRUSH)(COLOR_BACKGROUND); wc.lpszClassName = "MyWindowClass"; RegisterClass(&wc); // 创建窗口 HWND hWnd = CreateWindow( "MyWindowClass", // 窗口类名 "My Window", // 窗口标题 WS_OVERLAPPEDWINDOW, // 窗口样式 CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, // 窗口位置和大小 NULL, NULL, hInstance, NULL); // 显示窗口 ShowWindow(hWnd, nCmdShow); UpdateWindow(hWnd); // 消息循环 MSG msg; while (GetMessage(&msg, NULL, 0, 0)) { TranslateMessage(&msg); DispatchMessage(&msg); } return (int)msg.wParam; } LRESULT CALLBACK WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam) { switch (msg) { case WM_DESTROY: PostQuitMessage(0); break; default: return DefWindowProc(hWnd, msg, wParam, lParam); } return 0; } ``` 这段代码创建了一个名为"My Window"的窗体,并显示出来。现在,我们可以在窗体上添加控件和图形了。 要在窗体上添加控件,可以使用Windows API提供的各种控件类,例如按钮、文本框、标签等。以按钮为例,可以在窗口创建后添加以下代码: ```c++ HWND hButton = CreateWindow( "BUTTON", // 控件类名 "Click Me", // 控件标题 WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON, // 控件样式 10, 10, 100, 30, // 控件位置和大小 hWnd, NULL, hInstance, NULL); ``` 这段代码创建了一个名为"Click Me"的按钮,并将其添加到窗体上。可以通过修改控件的样式、位置和大小来调整控件的外观。 要在窗体上添加图形,可以使用Windows API提供的GDI(图形设备接口)。GDI提供了各种绘图函数和对象,可以用于绘制各种形状、线条、文本等。以下是一个简单的绘制矩形的例子: ```c++ HDC hdc = GetDC(hWnd); RECT rect = { 50, 50, 150, 150 }; HBRUSH hBrush = CreateSolidBrush(RGB(255, 0, 0)); SelectObject(hdc, hBrush); Rectangle(hdc, rect.left, rect.top, rect.right, rect.bottom); DeleteObject(hBrush); ReleaseDC(hWnd, hdc); ``` 这段代码获取了窗口的设备上下文(hdc),创建了一个红色画刷(hBrush),将画刷选入设备上下文,然后使用Rectangle函数绘制了一个矩形。最后,删除画刷,释放设备上下文。 以上是在窗体上添加控件和图形的基本方法。在实际开发中,可以根据需要选择合适的控件和绘图方式,让游戏更加丰富多彩。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值