Qt的IP地址小部件,类似于MFC的IP地址控制
我正在Qt中寻找一个类似于MFC的IP地址控制的小部件。有谁知道这样的小部件,或者我如何创建一个小部件?
I am looking for a widget in Qt which is similar to MFC's IP address control. Does anyone know of such a widget, or perhaps how I can create one?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
我不知道什么是 MFC IP Widget,但看起来它是一个输入 IP 地址的 Widget。
您需要使用带有 inputMask“000.000.000.000;_”的 QLineEdit
I have no idea what's an MFC IP Widget, but looks like it is a Widget to enter an IP address.
You need to use a QLineEdit with a inputMask "000.000.000.000;_"
对jpo38的代码进行了一些改进...
A little improvement of jpo38's code...
我同意little_su的观点:带有输入掩码的QLineEdit的外观和行为不如标准Windows IP控件那么好。我制定了一个完整的基于 QWidget 的 IP 控件,嵌入 4 个 QLineEdit 和 3 个 QLabel(用于点)。它的外观和行为与 MFC/Windows IP 控件一样完美。
这是代码:
I agree with little_su: QLineEdit with input mask does not look and behaves as nice as the standard Windows IP control. I worked out a complete QWidget-based IP control embedding 4 QLineEdit and 3 QLabel (for dots). It just looks and behaves perfectly as MFC/Windows IP controls.
Here is the code:
Tugo 代码的一点改进...我无法评论所以...
ipctrl.h :
ipctrl.cpp :
A little improvement of Tugo's code... I cannot comment so...
ipctrl.h :
ipctrl.cpp :
所有基于 QFrame 的解决方案都很棒,但它们迫使您声明自己的类。带有输入掩码的
QLineEdit
不会阻止输入“999.999.999.999”,因此这是不可接受的。这是使用 QLineEdit 验证器的一个易于实现且运行良好的实现:
请注意,“192.168.1”将被接受,您可以最终检查是否用“.”分割结果。最终得到 4 个非空字符串。那么你的IP地址应该是有效的。
All
QFrame
based solutions are great but they force you to declare your own class.QLineEdit
with input mask does not prevent '999.999.999.999' to be entered, so this is not acceptable.Here is an easy to implement and well workign implementation using QLineEdit validator:
Note that "192.168.1" will be accepted, to you may in the end check that splitting the result with "." ends up with 4 non empty strings. Then your IP adress should be valid.